You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
311 lines
18 KiB
311 lines
18 KiB
<?xml version="1.0" encoding="utf-8" ?>
|
|
<odoo>
|
|
<!-- Database backup configuration views-->
|
|
<record id="db_backup_configure_view_tree" model="ir.ui.view">
|
|
<field name="name">db.backup.configure.view.tree</field>
|
|
<field name="model">db.backup.configure</field>
|
|
<field name="arch" type="xml">
|
|
<list decoration-muted="(not active)">
|
|
<field name="name"/>
|
|
<field name="db_name"/>
|
|
<field name="backup_destination"/>
|
|
<field name="active"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="db_backup_configure_view_form" model="ir.ui.view">
|
|
<field name="name">db.backup.configure.view.form</field>
|
|
<field name="model">db.backup.configure</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<h1>
|
|
<field name="name" placeholder="Name..."/>
|
|
</h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="db_name"/>
|
|
<field name="master_pwd" password="True"/>
|
|
<field name="backup_format"/>
|
|
<field name="active" widget="boolean_toggle"
|
|
readonly="hide_active == False"/>
|
|
<field name="hide_active" invisible="1"/>
|
|
</group>
|
|
<group>
|
|
<field name="backup_destination" required="1"/>
|
|
<field name="backup_path"
|
|
invisible="backup_destination != 'local'"
|
|
required="backup_destination == 'local'"/>
|
|
<field name="ftp_host"
|
|
invisible="backup_destination != 'ftp'"
|
|
required="backup_destination == 'ftp'"/>
|
|
<field name="ftp_port"
|
|
invisible="backup_destination != 'ftp'"
|
|
required="backup_destination == 'ftp'"/>
|
|
<field name="ftp_user"
|
|
invisible="backup_destination != 'ftp'"
|
|
required="backup_destination == 'ftp'"/>
|
|
<field name="ftp_password"
|
|
invisible="backup_destination != 'ftp'"
|
|
required="backup_destination == 'ftp'"
|
|
password="True"/>
|
|
<field name="ftp_path"
|
|
invisible="backup_destination != 'ftp'"
|
|
required="backup_destination == 'ftp'"/>
|
|
<field name="sftp_host"
|
|
invisible="backup_destination != 'sftp'"
|
|
required="backup_destination == 'sftp'"/>
|
|
<field name="sftp_port"
|
|
invisible="backup_destination != 'sftp'"
|
|
required="backup_destination == 'sftp'"/>
|
|
<field name="sftp_user"
|
|
invisible="backup_destination != 'sftp'"
|
|
required="backup_destination == 'sftp'"/>
|
|
<field name="sftp_password"
|
|
invisible="backup_destination != 'sftp'"
|
|
required="backup_destination == 'sftp'"
|
|
password="True"/>
|
|
<field name="sftp_path"
|
|
invisible="backup_destination != 'sftp'"
|
|
required="backup_destination == 'sftp'"/>
|
|
<field name="gdrive_client_key" string="Client ID"
|
|
invisible="backup_destination != 'google_drive'"
|
|
required="backup_destination == 'google_drive'"/>
|
|
<field name="gdrive_client_secret"
|
|
string="Client Secret"
|
|
invisible="backup_destination != 'google_drive'"
|
|
required="backup_destination == 'google_drive'"
|
|
password="True"/>
|
|
<field name="gdrive_redirect_uri"
|
|
string="Redirect URI"
|
|
invisible="backup_destination != 'google_drive'"/>
|
|
<field name="gdrive_access_token" password="True"
|
|
invisible="1"/>
|
|
<field name="gdrive_refresh_token" password="True"
|
|
invisible="1"/>
|
|
<field name="gdrive_token_validity" invisible="1"/>
|
|
<field name="google_drive_folder_key"
|
|
invisible="backup_destination != 'google_drive'"
|
|
required="backup_destination == 'google_drive'"/>
|
|
<field name="dropbox_client_key" string="App Key"
|
|
invisible="backup_destination != 'dropbox'"
|
|
required="backup_destination == 'dropbox'"
|
|
password="True"/>
|
|
<field name="dropbox_client_secret"
|
|
string="App Secret"
|
|
invisible="backup_destination != 'dropbox'"
|
|
required="backup_destination == 'dropbox'"
|
|
password="True"/>
|
|
<field name="onedrive_client_key"
|
|
string="Client ID"
|
|
invisible="backup_destination != 'onedrive'"
|
|
required="backup_destination == 'onedrive'"/>
|
|
<field name="onedrive_client_secret"
|
|
string="Client Secret"
|
|
invisible="backup_destination != 'onedrive'"
|
|
required="backup_destination == 'onedrive'"
|
|
password="True"/>
|
|
<field name="onedrive_redirect_uri"
|
|
string="Redirect URI"
|
|
invisible="backup_destination != 'onedrive'"
|
|
required="backup_destination == 'onedrive'"/>
|
|
<field name="onedrive_folder_key"
|
|
string="Folder ID"
|
|
invisible="backup_destination != 'onedrive'"
|
|
required="backup_destination == 'onedrive'"/>
|
|
<field name="onedrive_access_token"
|
|
string="Access Token"
|
|
invisible="1" password="True"/>
|
|
<field name="onedrive_refresh_token"
|
|
string="Refresh Token" invisible="1"
|
|
password="True"/>
|
|
<field name="onedrive_token_validity"
|
|
string="Token Validity" invisible="1"/>
|
|
<field name="is_onedrive_token_generated"
|
|
invisible="1"/>
|
|
<field name="is_google_drive_token_generated"
|
|
invisible="1"/>
|
|
<field name="domain" string="Domain Name"
|
|
invisible="backup_destination != 'next_cloud'"/>
|
|
<field name="next_cloud_user_name"
|
|
string="User Name"
|
|
invisible="backup_destination != 'next_cloud'"/>
|
|
<field name="next_cloud_password" string="Password"
|
|
invisible="backup_destination != 'next_cloud'"/>
|
|
<field name="nextcloud_folder_key"
|
|
string="Folder ID"
|
|
invisible="backup_destination != 'next_cloud'"/>
|
|
<field name="aws_access_key"
|
|
invisible="backup_destination != 'amazon_s3'"/>
|
|
<field name="aws_secret_access_key"
|
|
invisible="backup_destination != 'amazon_s3'"/>
|
|
<field name="bucket_file_name"
|
|
invisible="backup_destination != 'amazon_s3'"/>
|
|
<field name="aws_folder_name"
|
|
invisible="backup_destination != 'amazon_s3'"/>
|
|
<div invisible="backup_destination != 'dropbox'">
|
|
<div invisible="backup_destination != 'dropbox' or is_dropbox_token_generated == False">
|
|
<i class="text-success fa fa-check"/>
|
|
Refresh token set
|
|
</div>
|
|
<div invisible="backup_destination != 'dropbox' or is_dropbox_token_generated == True">
|
|
<i class="fa fa-exclamation-triangle text-warning"/>
|
|
No refresh token set
|
|
</div>
|
|
</div>
|
|
<div invisible="backup_destination != 'dropbox'">
|
|
<div invisible="backup_destination != 'dropbox' or is_dropbox_token_generated == True">
|
|
<button class="btn btn-link"
|
|
name="action_get_dropbox_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Setup Token
|
|
</button>
|
|
</div>
|
|
<div invisible="backup_destination != 'dropbox' or is_dropbox_token_generated == False">
|
|
<button class="btn btn-link"
|
|
name="action_get_dropbox_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Reset Token
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div invisible="backup_destination != 'google_drive'">
|
|
<div invisible="backup_destination != 'google_drive' or is_google_drive_token_generated == False">
|
|
<i class="text-success fa fa-check"/>
|
|
Refresh token set
|
|
</div>
|
|
<div invisible="backup_destination != 'google_drive' or is_google_drive_token_generated == True">
|
|
<i class="fa fa-exclamation-triangle text-warning"/>
|
|
No refresh token set
|
|
</div>
|
|
</div>
|
|
<div invisible="backup_destination != 'google_drive'">
|
|
<div invisible="backup_destination != 'google_drive' or is_google_drive_token_generated == True">
|
|
<button class="btn btn-link"
|
|
name="action_get_gdrive_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Setup Token
|
|
</button>
|
|
</div>
|
|
<div invisible="backup_destination != 'google_drive' or is_google_drive_token_generated == False">
|
|
<button class="btn btn-link"
|
|
name="action_get_gdrive_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Reset Token
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div invisible="backup_destination != 'onedrive'">
|
|
<div invisible="backup_destination != 'onedrive' or is_onedrive_token_generated == False">
|
|
<i class="text-success fa fa-check"/>
|
|
Refresh token set
|
|
</div>
|
|
<div invisible="backup_destination != 'onedrive' or is_onedrive_token_generated == True">
|
|
<i class="fa fa-exclamation-triangle text-warning"/>
|
|
No refresh token set
|
|
</div>
|
|
</div>
|
|
<div invisible="backup_destination != 'onedrive'">
|
|
<div invisible="backup_destination != 'onedrive' or is_onedrive_token_generated == True">
|
|
<button class="btn btn-link"
|
|
name="action_get_onedrive_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Setup Token
|
|
</button>
|
|
</div>
|
|
<div invisible="backup_destination != 'onedrive' or is_onedrive_token_generated == False">
|
|
<button class="btn btn-link"
|
|
name="action_get_onedrive_auth_code"
|
|
type="object">
|
|
<i class="fa fa-arrow-right"/>
|
|
Reset Token
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</group>
|
|
<group>
|
|
<field name="notify_user"/>
|
|
<field name="user_id"
|
|
invisible="notify_user == False"/>
|
|
</group>
|
|
<group>
|
|
<field name="dropbox_refresh_token" invisible="1"/>
|
|
<field name="is_dropbox_token_generated"
|
|
invisible="1"/>
|
|
<field name="dropbox_folder"
|
|
invisible="backup_destination != 'dropbox'"
|
|
required="backup_destination == 'dropbox'"/>
|
|
<field name="auto_remove"/>
|
|
<label for="days_to_remove" class="oe_inline"
|
|
invisible="auto_remove == False"/>
|
|
<div invisible="auto_remove == False">
|
|
<field name="days_to_remove" class="oe_inline"
|
|
invisible="auto_remove == False"
|
|
required="auto_remove == True"/>
|
|
Days
|
|
</div>
|
|
<button name="action_sftp_connection" type="object"
|
|
string="Test Connection"
|
|
icon="fa-television"
|
|
invisible="backup_destination not in ('ftp', 'sftp')"/>
|
|
<button name="action_nextcloud" type="object"
|
|
string="Test Connection"
|
|
icon="fa-television"
|
|
invisible="backup_destination != 'next_cloud'"/>
|
|
<button name="action_s3cloud" type="object"
|
|
string="Test Connection"
|
|
icon="fa-television"
|
|
invisible="backup_destination != 'amazon_s3'"/>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="db_backup_configure_view_search" model="ir.ui.view">
|
|
<field name="name">db.backup.configure.view.search</field>
|
|
<field name="model">db.backup.configure</field>
|
|
<field name="arch" type="xml">
|
|
<search>
|
|
<field name="name"/>
|
|
<field name="db_name"/>
|
|
<filter string="All" name="all"
|
|
domain="['|', ('active', '=', True), ('active', '!=', True)]"/>
|
|
<separator/>
|
|
<filter string="Archived" name="inactive"
|
|
domain="[('active', '=', False)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Backup Type" name="backup_type" domain="[]"
|
|
context="{'group_by': 'backup_destination'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="db_backup_configure_action" model="ir.actions.act_window">
|
|
<field name="name">Database Backup</field>
|
|
<field name="res_model">db.backup.configure</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
No backup configured!
|
|
</p>
|
|
</field>
|
|
<field name="context">{'search_default_all': 1}</field>
|
|
</record>
|
|
|
|
<menuitem id="db_backup_menu_root" name="Automatic Database Backup"
|
|
parent="base.menu_custom" sequence="10"/>
|
|
<menuitem id="db_backup_configure_menu" parent="db_backup_menu_root"
|
|
name="Backup Configuration"
|
|
action="db_backup_configure_action"/>
|
|
</odoo>
|
|
|