[WIP][MIG][11.0] Odoo Connector

This commit is contained in:
QS5ELkMu
2018-08-19 03:44:09 +02:00
parent a626a1ee79
commit c380d37aa5
22 changed files with 188 additions and 124 deletions

View File

@@ -46,7 +46,7 @@
'test': [
],
'installable': True,
'installable': False,
'auto_install': True,
'application': False,
'license': 'AGPL-3',

View File

@@ -1,6 +1,5 @@
from odoo.addons.component.core import AbstractComponent
from odoo.addons.queue_job.exception import RetryableJobError
from odoo.addons.queue_job.exception import RetryableJobError
from odoo.tools import (
DEFAULT_SERVER_DATE_FORMAT,
DEFAULT_SERVER_DATETIME_FORMAT)

View File

@@ -1,5 +1,5 @@
from odoo.addons.component.core import AbstractComponent
from odoo import api
class BaseHotelChannelConnectorComponent(AbstractComponent):
_name = 'base.hotel.channel.connector'

View File

@@ -7,6 +7,7 @@ from odoo.tools import (
DEFAULT_SERVER_DATETIME_FORMAT)
from .backend_adapter import DEFAULT_WUBOOK_DATE_FORMAT
from odoo.addons.hotel import date_utils
from odoo import api
_logger = logging.getLogger(__name__)
class HotelChannelConnectorExporter(AbstractComponent):

View File

@@ -6,6 +6,7 @@ from odoo.tools import (
DEFAULT_SERVER_DATE_FORMAT,
DEFAULT_SERVER_DATETIME_FORMAT)
from .backend_adapter import DEFAULT_WUBOOK_DATE_FORMAT
from odoo import api
_logger = logging.getLogger(__name__)
class HotelChannelConnectorImporter(AbstractComponent):

View File

@@ -1,5 +1,5 @@
<odoo noupdate="1">
<record model="ir.cron" id="wubook_push_avail">
<!--record model="ir.cron" id="wubook_push_avail">
<field name="name">WuBook Push Availability</field>
<field name="interval_number">5</field>
<field name="interval_type">minutes</field>
@@ -7,7 +7,7 @@
<field name="doall" eval="False" />
<field name="model_id" ref="model_wubook" />
<field name="code">model.push_changes()</field>
</record>
</record-->
<!-- <record id="wubook_corporate_fetch" model="ir.cron">
<field name="name">WuBook Corporate Fetchable Properties</field>

View File

@@ -1,40 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.actions.act_window" id="open_wubook_channel_info_tree_all">
<field name="name">WuBook Channel Info</field>
<field name="res_model">wubook.channel.info</field>
<record model="ir.actions.act_window" id="open_hotel_channel_connector_ota_info_tree_all">
<field name="name">Hotel Channel Connector OTA's Info</field>
<field name="res_model">hotel_channel_connector_ota_info</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<record model="ir.actions.act_window" id="open_wubook_issues_tree_all">
<field name="name">WuBook Issues</field>
<field name="res_model">wubook.issue</field>
<record model="ir.actions.act_window" id="open_hotel_channel_connector_issue_tree_all">
<field name="name">Hotel Channel Connector Issues</field>
<field name="res_model">hotel.channel.connector.issue</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_wubook_issue_form_search"/>
<field name="search_view_id" ref="view_hotel_channel_connector_issue_form_search"/>
<field name="context">{"search_default_to_read":True}</field>
</record>
<record model="ir.actions.act_window" id="action_wubook_config">
<field name="name">Configure WuBook</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">wubook.config.settings</field>
<field name="view_id" ref="view_wubook_config_settings"/>
<field name="view_mode">form</field>
<field name="target">inline</field>
</record>
<menuitem id="wubook_menu" name="WuBook"
<menuitem id="hotel_channel_connector_menu" name="Hotel Channel Connector"
sequence="25" parent="base.menu_administration" />
<menuitem id="wubook_channels_info_menu" name="Channels Info"
sequence="1" action="open_wubook_channel_info_tree_all" parent="wubook_menu"/>
<menuitem id="wubook_issues_menu" name="Issues"
sequence="2" action="open_wubook_issues_tree_all" parent="wubook_menu"/>
<menuitem id="wubook_config_menu" name="Settings"
sequence="3" action="action_wubook_config" parent="wubook_menu"/>
<menuitem id="hotel_channel_connector_ota_info_menu" name="Channels Info"
sequence="1" action="open_hotel_channel_connector_ota_info_tree_all" parent="hotel_channel_connector_menu"/>
<menuitem id="hotel_channel_connector_issue_menu" name="Issues"
sequence="2" action="open_hotel_channel_connector_issue_tree_all" parent="hotel_channel_connector_menu"/>
</odoo>

View File

@@ -3,9 +3,9 @@
<record model="ir.sequence" id="seq_vroom_id">
<field name="name">Virtual Room Short Code</field>
<field name="code">hotel.room.type</field>
<field name="code">hotel.virtual.room</field>
<field name="prefix"></field>
<field name="padding">4</field>
</record>
</odoo>

View File

@@ -26,7 +26,7 @@ class ChannelHotelReservation(models.Model):
old_name='wchannel_id')
ota_reservation_id = fields.Char("Channel OTA Reservation Code",
readonly=True,
old_name='channel_reservation_code')
old_name='wchannel_reservation_code')
is_from_ota = fields.Boolean('Is From OTA',
compute=_is_from_ota, store=False,
readonly=True,

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Backend stuff -->
<template id="assets_backend" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/hotel_wubook_proto/static/src/js/wubook_listview_import_buttons.js"></script>
<script type="text/javascript" src="/hotel_channel_connector/static/src/js/wubook_listview_import_buttons.js"></script>
</xpath>
</template>
</odoo>
</odoo>

View File

@@ -2,11 +2,11 @@
<odoo>
<!-- FORM issue -->
<record id="wubook_issue_view_form" model="ir.ui.view">
<field name="name">wubook.issue.form</field>
<field name="model">wubook.issue</field>
<record id="hotel_channel_connector_issue_view_form" model="ir.ui.view">
<field name="name">hotel.channel.coonector.issue.form</field>
<field name="model">hotel.channel.coonector.issue</field>
<field name="arch" type="xml">
<form string="WuBook Issue">
<form string="Channel Connector Issue">
<sheet>
<div class="oe_button_box" name="button_box">
<button name="toggle_to_read" type="object" class="oe_stat_button" icon="fa-eye">
@@ -20,15 +20,15 @@
</div>
<group>
<field name="section"/>
<field name="message"/>
<field name="internal_message"/>
</group>
<group>
<field name="date_start"/>
<field name="date_end"/>
</group>
<group>
<field name="wid"/>
<field name="wmessage"/>
<field name="channel_object_id"/>
<field name="channel_message"/>
</group>
</sheet>
</form>
@@ -36,34 +36,34 @@
</record>
<!-- TREE issue -->
<record id="wubook_issue_view_tree" model="ir.ui.view">
<field name="name">wubook.issue.tree</field>
<field name="model">wubook.issue</field>
<record id="hotel_channel_connector_issue_view_tree" model="ir.ui.view">
<field name="name">hotel.channel.coonector.issue.tree</field>
<field name="model">hotel.channel.coonector.issue</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="WuBook Issues">
<tree string="Channel Connector Issues">
<field name="create_date"/>
<field name="section"/>
<field name="message"/>
<field name="internal_message"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="wid"/>
<field name="channel_object_id"/>
</tree>
</field>
</record>
<!-- SEARCH issue -->
<record id="view_wubook_issue_form_search" model="ir.ui.view">
<field name="name">wubook.issue.search</field>
<field name="model">wubook.issue</field>
<record id="view_hotel_channel_connector_issue_form_search" model="ir.ui.view">
<field name="name">hotel.channel.coonector.issue.search</field>
<field name="model">hotel.channel.coonector.issue</field>
<field name="arch" type="xml">
<search string="Issues">
<field name="create_date"/>
<field name="section"/>
<field name="message"/>
<field name="internal_message"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="wid"/>
<field name="channel_object_id"/>
<field name="to_read"/>
</search>
</field>

View File

@@ -18,7 +18,7 @@
<field name="arch" type="xml">
<xpath expr="//notebook/page/field[@name='room_lines']/tree/field[@name='checkout']" position="after">
<field name="origin_sale"/>
<field name="wis_from_channel" invisible="1"/>
<field name="is_from_ota" invisible="1"/>
</xpath>
<xpath expr="//notebook/page/field[@name='room_lines']/tree/field[@name='checkout']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel', '!=', False)]}</attribute>
@@ -28,7 +28,7 @@
</xpath>
<xpath expr="//notebook/page/field[@name='room_lines']/form/sheet/header/field[@name='folio_id']" position="after">
<field name="origin_sale" invisible="1"/>
<field name="wis_from_channel" invisible="1"/>
<field name="is_from_ota" invisible="1"/>
</xpath>
<xpath expr="//notebook/page/field[@name='room_lines']/form/sheet/h3/field[@name='checkout']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel', '!=', False)]}</attribute>

View File

@@ -10,13 +10,13 @@
</xpath>
<xpath expr="//field[@name='cardex_pending']" position="before">
<group colspan="6" col="6">
<field name="wis_from_channel" readonly="True" invisible="True"/>
<field name="is_from_ota" readonly="True" invisible="True"/>
</group>
</xpath>
<xpath expr="//field[@name='partner_internal_comment']" position="after">
<field name="able_to_modify_wubook" invisible="True"/>
<field name="wcustomer_notes" readonly="1"
<field name="customer_notes" readonly="1"
attrs="{'invisible': [('wrid','=',False)]}"
nolabel="1" colspan="2"
/>
@@ -25,8 +25,8 @@
<xpath expr="//page[@name='days']" position="after">
<page name="wubook" string="Wubook">
<group colspan="4" col="4">
<field name="wrid" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="wchannel_reservation_code" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="channel_reservation_id" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="ota_reservation_code" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="wstatus" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="wstatus_reason" attrs='{"readonly": [("able_to_modify_wubook","=",False)]}'/>
<field name="to_read" invisible="0"/>
@@ -37,22 +37,22 @@
<!-- ALLOW ONLY-READ -->
<xpath expr="//field[@name='adults']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel','=',True),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('is_from_ota','=',True),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
<xpath expr="//field[@name='virtual_room_id']" position="attributes">
<attribute name="attrs">{'readonly': [('wrid','!=',False),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('channel_reservation_id','!=',False),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
<xpath expr="//field[@name='children']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel','=',True),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('is_from_ota','=',True),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
<xpath expr="//field[@name='checkin']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel','=',True),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('is_from_ota','=',True),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
<xpath expr="//field[@name='checkout']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel','=',True),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('is_from_ota','=',True),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
<xpath expr="//field[@name='reservation_line_ids']" position="attributes">
<attribute name="attrs">{'readonly': [('wis_from_channel','=',True),('able_to_modify_wubook','=',False)]}</attribute>
<attribute name="attrs">{'readonly': [('is_from_ota','=',True),('able_to_modify_wubook','=',False)]}</attribute>
</xpath>
</field>
</record>

View File

@@ -7,7 +7,7 @@
<field name="inherit_id" ref="hotel.virtual_room_availability_view_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='avail']" position="after">
<field name="wmax_avail" />
<field name="channel_max_avail" />
</xpath>
</field>
</record>
@@ -19,7 +19,7 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='avail']" position="after">
<field name="wmax_avail" />
<field name="channel_max_avail" />
</xpath>
</field>
</record>

View File

@@ -6,11 +6,11 @@
<field name="inherit_id" ref="hotel.virtual_room_view_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="wscode" maxlength="4" readonly="True" />
<field name="wrid" readonly="True" />
<field name="wcapacity" />
<field name="channel_short_code" maxlength="4" readonly="True" />
<field name="channel_reservation_id" readonly="True" />
<field name="ota_capacity" />
</xpath>
</field>
</record>
</odoo>
</odoo>

View File

@@ -1,16 +1,16 @@
<?xml version="1.0"?>
<odoo>
<record id="product_pricelist_item_form_view" model="ir.ui.view">
<field name="model">product.pricelist.item</field>
<field name="inherit_id" ref="product.product_pricelist_item_form_view" />
<field name="arch" type="xml">
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="wpushed" readonly="True" />
<field name="wdaily" invisible="1" />
<field name="channel_pushed" readonly="True" />
<field name="is_daily_plan" invisible="1" />
</xpath>
<xpath expr="//field[@name='date_end']" position="attributes">
<attribute name="attrs">{'readonly': [('wdaily', '=', True)]}</attribute>
<attribute name="attrs">{'readonly': [('is_daily_plan', '=', True)]}</attribute>
</xpath>
</field>
</record>

View File

@@ -7,25 +7,25 @@
<field name="arch" type="xml">
<xpath expr="//form[1]//sheet" position="before">
<header>
<button name="%(action_wubook_import_plan_prices)d" string="Import Prices From WuBook" type="action" class="oe_highlight" />
<button name="%(action_channel_import_plan_prices)d" string="Import Prices From Channel" type="action" class="oe_highlight" />
</header>
</xpath>
<xpath expr="//field[@name='company_id']" position="after">
<field name="id" invisible="1"/>
<field name="wpid" />
<field name="wdaily" widget="checkbox" attrs="{'readonly':[('id', '>', 0)]}" />
<field name="channel_plan_id" />
<field name="is_daily_plan" widget="checkbox" attrs="{'readonly':[('id', '>', 0)]}" />
</xpath>
</field>
</record>
<record id="product_pricelist_view_tree" model="ir.ui.view">
<field name="model">product.pricelist</field>
<field name="inherit_id" ref="product.product_pricelist_view_tree" />
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="wdaily" widget="checkbox" readonly="True" />
<field name="is_daily_plan" widget="checkbox" readonly="True" />
</xpath>
</field>
</record>
</odoo>
</odoo>

View File

@@ -7,12 +7,12 @@
<field name="arch" type="xml">
<xpath expr="//form[1]//sheet" position="before">
<header>
<button name="%(action_wubook_import_plan_restrictions)d" string="Import Restrictions From WuBook" type="action" class="oe_highlight" />
<button name="%(action_channel_import_plan_restrictions)d" string="Import Restrictions From Channel" type="action" class="oe_highlight" />
</header>
</xpath>
<xpath expr="//field[@name='active']" position="after">
<field name="wpid" />
<field name="wdaily" />
<field name="channel_plan_id" />
<field name="is_daily_plan" />
</xpath>
</field>
</record>

View File

@@ -1,12 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Hotel Channel Connector Settings -->
<record id="view_hotel_config_settings" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.hotel.channel.connector</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="80"/>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Hotel" string="Hotel" data-key="hotel" groups="hotel.group_hotel_manager">
<h2>Hotel Parity</h2>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-6 o_setting_box">
<label for="parity_pricelist_id"/>
<div class="text-muted">
Set pricelist parity
</div>
<div class="content-group">
<div class="mt16">
<field name="parity_pricelist_id" required="True" />
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 o_setting_box">
<label for="parity_restrictions_id"/>
<div class="text-muted">
Set restrictions parity
</div>
<div class="content-group">
<div class="mt16">
<field name="parity_restrictions_id" required="True" />
</div>
</div>
</div>
</div>
<h2>Hotel Default Hours</h2>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-12 o_setting_box">
<label for="tz_hotel"/>
<div class="text-muted">
Set time-zone
</div>
<div class="content-group">
<div class="mt16">
<field name="tz_hotel"/>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 o_setting_box">
<label for="default_arrival_hour"/>
<div class="text-muted">
Set default arrival hour
</div>
<div class="content-group">
<div class="mt16">
<field name="default_arrival_hour" required="True" />
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 o_setting_box">
<label for="default_departure_hour"/>
<div class="text-muted">
Set default departure hour
</div>
<div class="content-group">
<div class="mt16">
<field name="default_departure_hour" required="True" />
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
<!-- WuBook config wizard -->
<record id="view_wubook_config_settings" model="ir.ui.view">
<field name="name">WuBook Settings</field>
<field name="model">wubook.config.settings</field>
<field name="name">Channel Settings</field>
<field name="model">res.config.settings</field>
<field name="arch" type="xml">
<form string="Configure WuBook" class="oe_form_configuration">
<form string="Configure Channel" class="oe_form_configuration">
<header>
<button string="Apply" type="object" name="execute" class="oe_highlight"/>
<button string="Cancel" type="object" name="cancel" class="oe_link"/>

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Form view -->
<record model="ir.ui.view" id="view_wubook_channel_info_form">
<field name="name">wubook.channel.info.form</field>
<field name="model">wubook.channel.info</field>
<field name="arch" type="xml">
<form string="Wubook Channel Info" >
<sheet>
<group>
<field name="wid" />
<field name="name" />
<field name="ical" readonly="True" widget="checkbox" />
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view -->
<record model="ir.ui.view" id="view_wubook_channel_info_tree">
<field name="name">wubook.channel.info.tree</field>
<field name="model">wubook.channel.info</field>
<field name="arch" type="xml">
<tree string="WuBook Channel Info">
<field name="wid" />
<field name="name" />
</tree>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Form view -->
<record model="ir.ui.view" id="view_hotel_channel_connector_ota_info_form">
<field name="name">hotel.channel.connector.ota.info.form</field>
<field name="model">hotel.channel.connector.ota.info</field>
<field name="arch" type="xml">
<form string="Channel OTA's Info" >
<sheet>
<group>
<field name="ota_id" />
<field name="name" />
<field name="ical" readonly="True" widget="checkbox" />
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view -->
<record model="ir.ui.view" id="view_hotel_channel_connector_ota_info_tree">
<field name="name">hotel.channel.connector.ota.info.tree</field>
<field name="model">hotel.channel.connector.ota.info.info</field>
<field name="arch" type="xml">
<tree string="Channel OTA's Info">
<field name="ota_id" />
<field name="name" />
</tree>
</field>
</record>
</odoo>