summaryrefslogtreecommitdiff
path: root/addons/google_drive/views
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/google_drive/views
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/google_drive/views')
-rw-r--r--addons/google_drive/views/google_drive_templates.xml17
-rw-r--r--addons/google_drive/views/google_drive_views.xml115
-rw-r--r--addons/google_drive/views/res_config_settings_views.xml77
3 files changed, 209 insertions, 0 deletions
diff --git a/addons/google_drive/views/google_drive_templates.xml b/addons/google_drive/views/google_drive_templates.xml
new file mode 100644
index 00000000..7a02753a
--- /dev/null
+++ b/addons/google_drive/views/google_drive_templates.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <template id="assets_backend" name="google_drive assets" inherit_id="web.assets_backend">
+ <xpath expr="." position="inside">
+ <link rel="stylesheet" href="/google_drive/static/src/css/google_drive.css"/>
+ <script type="text/javascript" src="/google_drive/static/src/js/gdrive.js"></script>
+ </xpath>
+ </template>
+
+ <template id="qunit_suite" name="google_drive tests" inherit_id="web.qunit_suite_tests">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/google_drive/static/tests/mock_server.js"></script>
+ <script type="text/javascript" src="/google_drive/static/tests/gdrive_test.js"></script>
+ </xpath>
+ </template>
+</odoo>
diff --git a/addons/google_drive/views/google_drive_views.xml b/addons/google_drive/views/google_drive_views.xml
new file mode 100644
index 00000000..2879c4e6
--- /dev/null
+++ b/addons/google_drive/views/google_drive_views.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <!-- add google drive config field in user form -->
+ <record id="view_google_drive_config_tree" model="ir.ui.view">
+ <field name="name">google_drive.config.tree</field>
+ <field name="model">google.drive.config</field>
+ <field name="arch" type="xml">
+ <tree string="Google Drive Configuration">
+ <field name="name" />
+ <field name="model_id" />
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_google_drive_config_form" model="ir.ui.view">
+ <field name="name">google_drive.config.form</field>
+ <field name="model">google.drive.config</field>
+ <field name="arch" type="xml">
+ <form string="Google Drive Configuration">
+ <field name="model" invisible="1" />
+ <group>
+ <field name="name" />
+ <field name="active" widget="boolean_toggle"/>
+ <field name="model_id"/>
+ <label for='filter_id' />
+ <div>
+ <field name='filter_id' />
+ <p class="oe_grey">
+ <b>To create a new filter:</b><br/>
+ - Go to the Odoo document you want to filter. For instance, go to Opportunities and search on Sales Department.<br/>
+ - In this "Search" view, select the option "Save Current Filter", enter the name (Ex: Sales Department)<br/>
+ - If you select "Share with all users", link of google document in "More" options will appear for all users in opportunities of Sales Department.<br/>
+ - If you don't select "Share with all users", link of google document in "More" options will not appear for other users in opportunities of Sales Department.<br/>
+ - If filter is not specified, link of google document will appear in "More" option for all users for all opportunities.
+ </p>
+ </div>
+ <field name='google_drive_template_url' placeholder="https://docs.google.com/document/d/1vOtpJK9scIQz6taD9tJRIETWbEw3fSiaQHArsJYcua4/edit" required="1" />
+ <field name='google_drive_resource_id' invisible="1" />
+ <label for='name_template' />
+ <div>
+ <field name='name_template' />
+ <p class="oe_grey">
+ The name of the attached document can use fixed or variable data. To distinguish between documents in
+ Google Drive, use fixed words and fields. For instance, in the example above, if you wrote Deco_Addict_%%(name)s_Sales
+ in the Google Drive name field, the document in your Google Drive and in Odoo attachment will be named
+ 'Deco_Addict_SO0001_Sales'.
+ </p>
+ </div>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="view_google_drive_config_kanban" model="ir.ui.view">
+ <field name="name">google.drive.config.kanban</field>
+ <field name="model">google.drive.config</field>
+ <field name="arch" type="xml">
+ <kanban>
+ <field name="name"/>
+ <field name="active"/>
+ <field name="model_id"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div t-attf-class="oe_kanban_global_click">
+ <div class="row o_kanban_record_title">
+ <div class="col-4 text-center"><strong>Template</strong></div>
+ <div class="col-4 text-center"><strong>Model</strong></div>
+ <div class="col-4 text-center"><strong>Active</strong></div>
+ </div>
+ <hr class="mb4 mt4"/>
+ <div class="row o_kanban_record_subtitle">
+ <div class="col-4 text-center"><field name="name"/></div>
+ <div class="col-4 text-center"><field name="model_id"/></div>
+ <div class="col-4 text-center">
+ <field name="active" widget="boolean"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
+ <record id="google_drive_config_view_search" model="ir.ui.view">
+ <field name="name">google.drive.config.view.search</field>
+ <field name="model">google.drive.config</field>
+ <field name="arch" type="xml">
+ <search string="Search Google Drive Config">
+ <field name="name"/>
+ <separator/>
+ <filter name="archived" string="Archived" domain="[('active', '=', False)]"/>
+ </search>
+ </field>
+ </record>
+
+ <record id='action_google_drive_users_config' model='ir.actions.act_window'>
+ <field name='name'>Templates</field>
+ <field name='res_model'>google.drive.config</field>
+ <field name='type'>ir.actions.act_window</field>
+ <field name="view_mode">tree,kanban,form</field>
+ <field name='view_id' ref='view_google_drive_config_tree'/>
+ <field name="search_view_id" ref="google_drive_config_view_search"/>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Add a new template
+ </p>
+ <p>
+ Link your own google drive templates to any record of Odoo. If you have really specific documents you want your collaborator fill in, e.g. Use a spreadsheet to control the quality of your product or review the delivery checklist for each order in a foreign country, ... Its very easy to manage them, link them to Odoo and use them to collaborate with your employees.
+ </p>
+ </field>
+ </record>
+
+</odoo>
diff --git a/addons/google_drive/views/res_config_settings_views.xml b/addons/google_drive/views/res_config_settings_views.xml
new file mode 100644
index 00000000..42965daa
--- /dev/null
+++ b/addons/google_drive/views/res_config_settings_views.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="res_config_settings_view_form" model="ir.ui.view">
+ <field name="name">res.config.settings.view.form.inherit.google.drive</field>
+ <field name="model">res.config.settings</field>
+ <field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
+ <field name="arch" type="xml">
+ <div id="msg_module_google_drive" position="replace">
+ <div class="content-group"
+ attrs="{'invisible': [('module_google_drive','=',False)]}">
+ <div class="mt8 row">
+ <div class="col-sm">
+ <field name="is_google_drive_token_generated" invisible="1"/>
+ <div role="alert"
+ attrs="{'invisible': [('is_google_drive_token_generated', '=', False)]}">
+ <i class="text-success fa fa-check"></i> &amp;nbsp; Refresh token set
+ </div>
+ <div role="alert"
+ attrs="{'invisible': [('is_google_drive_token_generated', '=', True)]}">
+ <i class="fa fa-exclamation-triangle text-warning"></i> &amp;nbsp; No refresh token set
+ </div>
+ </div>
+ <div class="col-sm text-center"
+ attrs="{'invisible': [('is_google_drive_token_generated', '=', True)]}">
+ <button class="btn btn-link"
+ name="action_setup_token"
+ type="object"><i class="fa fa-arrow-right"></i> Set up token</button>
+ </div>
+ <div class="col-sm text-center"
+ attrs="{'invisible': [('is_google_drive_token_generated', '=', False)]}">
+ <button class="btn btn-link"
+ name="action_setup_token"
+ type="object"><i class="fa fa-arrow-right"></i> Reset token</button>
+ </div>
+ </div>
+ <div class="mt8">
+ <button type="action"
+ name="%(action_google_drive_users_config)d"
+ string="Google Drive Templates"
+ icon="fa-arrow-right"
+ class="btn-link pl-0"/>
+ </div>
+ </div>
+ </div>
+ </field>
+ </record>
+
+ <record id="google_drive_auth_code_wizard" model="ir.ui.view">
+ <field name="name">google.drive.authorization.wizard</field>
+ <field name="model">res.config.settings</field>
+ <field name="mode">primary</field>
+ <field name="priority">2048</field>
+ <field name="arch" type="xml">
+ <form>
+ <group>
+ <span>Get an authorization code and set it in the field below.</span>
+ <field name="google_drive_uri"
+ class="fa fa-arrow-right mt-1"
+ widget="url"
+ text="Get Authorization Code"
+ nolabel="1"/>
+ </group>
+ <group class="mt-3">
+ <field name="google_drive_authorization_code" required="1"/>
+ </group>
+ <footer>
+ <button string="Confirm"
+ class="btn btn-primary"
+ name="confirm_setup_token"
+ type="object"/>
+ <button special="cancel" string="Cancel" />
+ </footer>
+ </form>
+ </field>
+ </record>
+</odoo>