diff --git a/.travis.yml b/.travis.yml index 0247afd3f..e31ccc1ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ env: - TRANSIFEX="1" - TESTS="1" ODOO_REPO="odoo/odoo" - TESTS="1" ODOO_REPO="OCA/OCB" - - UNIT_TEST="1" + - UNIT_TEST="1" virtualenv: system_site_packages: true diff --git a/auto_backup/README.rst b/auto_backup/README.rst new file mode 100644 index 000000000..7579fce45 --- /dev/null +++ b/auto_backup/README.rst @@ -0,0 +1,106 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +==================== +Database Auto-Backup +==================== + +A tool for all your back-ups, internal and external! + +Installation +============ + +Before installing this module, you need to execute:: + + pip install pysftp + +Configuration +============= + +Go to *Settings -> Configuration -> Configure Backup* to +create your configurations for each database that you needed +to backups. + +Usage +===== + +Keep your Odoo data safe with this module. Take automated back-ups, +remove them automatically and even write them to an external server +through an encrypted tunnel. You can even specify how long local backups +and external backups should be kept, automatically! + +Connect with an FTP Server +-------------------------- + +Keep your data safe, through an SSH tunnel! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Want to go even further and write your backups to an external server? +You can with this module! Specify the credentials to the server, specify +a path and everything will be backed up automatically. This is done +through an SSH (encrypted) tunnel, thanks to pysftp, so your data is +safe! + +Test connection +--------------- + +Checks your credentials in one click +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Want to make sure if the connection details are correct and if Odoo can +automatically write them to the remote server? Simply click on the ‘Test +SFTP Connection’ button and you will get message telling you if +everything is OK, or what is wrong! + +E-mail on backup failure +------------------------ + +Stay informed of problems, automatically! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Do you want to know if the database backup succeeded or failed? Subscribe to +the corresponding backup setting notification type. + +Run backups when you want +------------------------- + +From the backups configuration list, press *More > Execute backup(s)* to +manually execute the selected processes. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/149/8.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Yenthe Van Ginneken +* Alessio Gerace +* Jairo Llopis + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/auto_backup/__init__.py b/auto_backup/__init__.py new file mode 100644 index 000000000..49f944b46 --- /dev/null +++ b/auto_backup/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# © 2004-2009 Tiny SPRL (). +# © 2015 Agile Business Group +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License GPL-3.0 or later (http://www.gnu.org/licenses/gpl.html). + +from . import models diff --git a/auto_backup/__openerp__.py b/auto_backup/__openerp__.py new file mode 100644 index 000000000..b73af7cbe --- /dev/null +++ b/auto_backup/__openerp__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# © 2004-2009 Tiny SPRL (). +# © 2015 Agile Business Group +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License GPL-3.0 or later (http://www.gnu.org/licenses/gpl.html). + +{ + "name": "Database Auto-Backup", + "summary": "Backups database", + "version": "8.0.1.0.0", + "author": ( + "VanRoey.be - Yenthe Van Ginneken, Agile Business Group," + " Grupo ESOC Ingeniería de Servicios," + " Odoo Community Association (OCA)" + ), + 'license': "AGPL-3", + "website": "http://www.vanroey.be/applications/bedrijfsbeheer/odoo", + "category": "Tools", + "depends": ['email_template'], + "demo": [], + "data": [ + "data/backup_data.yml", + "security/ir.model.access.csv", + "view/db_backup_view.xml", + ], + "application": True, + "installable": True, + "external_dependencies": { + "python": ["pysftp"], + }, +} diff --git a/auto_backup/data/backup_data.yml b/auto_backup/data/backup_data.yml new file mode 100644 index 000000000..3b6b4bc29 --- /dev/null +++ b/auto_backup/data/backup_data.yml @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +# Cron job +- !record {model: ir.cron, id: ir_cron_backupscheduler0}: + name: Backup scheduler + user_id: base.user_root + interval_number: 1 + interval_type: days + numbercall: -1 + nextcall: !eval + (datetime.now() + timedelta(days=1)).strftime("%Y-%m-%d 02:00:00") + model: db.backup + function: action_backup_all + +# New message subtypes +- !record {model: mail.message.subtype, id: success}: + name: Backup successful + res_model: db.backup + default: False + description: Database backup succeeded. + +- !record {model: mail.message.subtype, id: failure}: + name: Backup failed + res_model: db.backup + default: True + description: Database backup failed. diff --git a/auto_backup/i18n/de.po b/auto_backup/i18n/de.po new file mode 100644 index 000000000..7320d2875 --- /dev/null +++ b/auto_backup/i18n/de.po @@ -0,0 +1,299 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-04-17 11:24+0100\n" +"Last-Translator: Martin Schmid \n" +"Language-Team: Equitania Software GmbH \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.7.5\n" +"Language: de\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Absoluter Pfad zum Speichern der Sicherungen" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "Auto. E-Mail, wenn Datensicherung fehlschlägt" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "Auto. Entfernen von Sicherungen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "Automatische Sicherungen der Datenbank können wie folgt geplant werden:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Sicherungs-Verzeichnis" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "Sicherungen" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "" +"Wählen Sie, nach wie vielen Tagen die Sicherung vom FTP-Server gelöscht werden soll. Beispiel: \n" +"Wenn Sie \"5\" angeben, werden die Sicherungen nach 5 Tagen vom FTP-Server entfernt." + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "" +"Wählen Sie, nach wie vielen Tagen die Sicherung vom FTP-Server gelöscht werden soll. Beispiel: \n" +"Wenn Sie \"5\" angeben, werden die Sicherungen nach 5 Tagen vom FTP-Server entfernt." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Backup einstellen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "Sprechen Sie uns an!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "Erstellt von" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "Erstellt am:" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Datenbank" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Datenbank Sicherungen einplanen für" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "E-Mail Benachrichtigen" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Fehler! Keine solche Datenbank vorhanden!" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "Geben Sie die E-Mail-Adresse an, die bei Sicherungsfehlern auf dem FTP verwendet werden soll." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "Zum Beispiel: /odoo/Backups /" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Gehen Sie zu Einstellungen / Technisch / Automation / Geplante Vorgänge" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "Hilfe" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr "IP-Adresse SFTP-Server" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "Wenn Sie diese Option aktivieren, erhalten Sie automatisch eine e-Mail, wenn die Sicherung mit dem externen Server fehlgeschlagen ist." + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "Wenn Sie diese Option aktivieren, können Sie die Sicherung automatisch nach Xx Tagen entfernen" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "Wenn Sie diese Option aktivieren, können Sie Details für einen entfernten SFTP-Server angeben." + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "Lokale Sicherungs-Konfiguration" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "Benötigen Sie weitere Hilfe?" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr "Passwort Benutzer SFTP-Server" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "Externen Server Pfad" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Port" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "SFTP nach x Tagen entfernen" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "Entfernen nach x Tagen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "SFTP-Port" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "Suchkriterien" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Suchen Sie die Aktion mit dem Namen \"Backup Scheduler\"." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "Setzen Sie die Aktion auf aktiv und geben Sie an wie oft die Sicherungen erstellt werden soll." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "Test" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "Verbindung testen" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Die IP-Adresse Ihres entfernten Servers. Zum Beispiel 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "" +"The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "" +"Der Speicherort für den Ordner an dem die Sicherungen in gespeichert werden sollen. Zum Beispiel wird /odoo/backups/.\n" +"Files geschrieben zu /odoo/backups / / auf dem remote Server." + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "Das Kennwort des Benutzers mit dem die SFTP-Verbindung mit hergestellt werden soll. Dies ist das Kennwort des Benutzers auf dem externen Server." + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "Der Port auf dem FTP-Server, der SSH/SFTP Anfragen annimmt." + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "Der Benutzername mit dem die SFTP-Verbindung mit hergestellt werden soll. Dies ist der Benutzer auf dem externen Server." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "Dies ist Konfiguration der Aktion automatisierte Backups der Datenbank auf dem angegebenen Server durchzuführen." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Verwenden Sie SFTP mit Vorsicht! Dies schreibt Dateien auf externen Servern unter dem Pfad, den Sie angeben." + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "Benutzername SFTP-Server" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "Warnung:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "Auf externen Server mit SFTP schreiben" diff --git a/auto_backup/i18n/it.po b/auto_backup/i18n/it.po new file mode 100644 index 000000000..a12a5cacb --- /dev/null +++ b/auto_backup/i18n/it.po @@ -0,0 +1,335 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-21 13:00+0000\n" +"PO-Revision-Date: 2015-07-21 13:00+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:204 +#, python-format +msgid "\n" +"Your IP address seems to be too short.\n" +"" +msgstr "\n" +"L' indirizzo IP sembra essere troppo corto.\n" +"" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:209 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:288 +#, python-format +msgid "(Part of the) path didn't exist. Creating it now at %s" +msgstr "(Una parte del) path non esiste. Verra' creato in %s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Percorso assoluto per il salvataggio del DB" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "Auto. E-mail nel caso di errori durante il backup " + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "Rimuovi Backups" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "Il backup automatico del DB e' pianificato come segue:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Backup Directory" + +#. module: auto_backup +#: model:email.template,subject:auto_backup.email_template_autobackup_error_noificaiton +msgid "Backup from ${object.host} - (${object.sftpip}) failed" +msgstr "Backup da ${object.host} - (${object.sftpip}) fallito" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "Backups" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "Scegliere dopo quanti giorni si possa condsiderare da eliminare, un Backup nel server FTP. Per esempio:\n" +"se si imposta 5 i files di backups piu' vecchi di 5 giorni saranno eliminati dal server FTP" + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "Scegliere dopo quanti giorni si possa condsiderare da eliminare un Backup. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "Choose after how many days the backup should be deleted. For example:\n" +"se si imposta 5 i files di backups piu' vecchi di 5 giorni saranno eliminati." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Configura Backup" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:202 +#, python-format +msgid "Connection Test Failed!" +msgstr "Test connessione Fallito!" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:198 +#, python-format +msgid "Connection Test Succeeded!" +msgstr "Test connessione avvenuto con successo!" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:241 +#, python-format +msgid "Couldn't backup database %s. Bad database administratorpassword for server running at http://%s:%s" +msgstr "Impossibile eseguire il backup di %s. DB password erraata per il server http://%s:%s" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "Created by" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "Created on" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Database" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Database you want to schedule backups for" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +#: field:db.backup,lasterrorlog:0 +msgid "E-mail to notify" +msgstr "E-mail di notifica" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:176 +#, python-format +msgid "Error" +msgstr "Errore" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:176 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Errore ! Il DB non esiste!" + +#. module: auto_backup +#: code:addons/auto_backup/model/backup_scheduler.py:199 +#, python-format +msgid "Everything seems properly set up for FTP back-ups!" +msgstr "Tutto sembra impostato correttamente per il back-up FTP!" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +#: help:db.backup,lasterrorlog:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "Compilare l'e -mail in cui si desidera essere avvisati,se il backup FTP fallisce." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "Es.: /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Anadare in Settings / Technical / Automation / Scheduled Actions." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "Aiuto" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr "IP Address SFTP Server" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "Se si seleziona questa opzione è possibile scegliere di essere notificati automaticamente via e-mail quando il backup al server esterno fallisce ." + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "Se si seleziona questa opzione è possibile scegliere di rimuovere automaticamente il backup dopo xx giorni" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "Se si seleziona questa opzione è possibile specificare i dettagli necessari per scrivere a un server remoto con SFTP ." + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "Configurazione backup locale" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr "Password utene SFTP Server" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "Path server esterno" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Porta" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "Rimuovi backup da SFTP dopo x giorni" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "Rimuovi dopo x giorni" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "Porta SFTP" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "Search options" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Cerca l'azione denominata ' di pianificazione del backup ' ." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "Impostare lo scheduler per attivare e compilare la frequenza con cui si desidera generare il backup." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "Test" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "Test SFTP Connection" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Indirizzo IP server remoto. Es. 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "La posizione della cartella in cui i dumps devono essere scritti. Es. /odoo/backups/.\n" +"i files verranno scritti su /odoo/backups/ nel server remoto." + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "La password dell'utente con cui la connessione SFTP deve essere fatta. Questa è la password dall'utente sul server esterno ." + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "La porta sul server FTP che accetta chiamate SSH / SFTP." + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "Il nome utente in cui la connessione SFTP dovrebbe essere fatto con . Questo è l'utente sul server esterno." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "pianificazione per il backup automatico del database in esecuzione su dato host /porta ad intervalli regolari." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Usare SFTP con cautela ! Questo scrive file su server esterni nel percorso specificato " + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "Username SFTP Server" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "Warning:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "Salva il backup anche su server FTP esterno" + diff --git a/auto_backup/i18n/nl.po b/auto_backup/i18n/nl.po new file mode 100644 index 000000000..8d739798b --- /dev/null +++ b/auto_backup/i18n/nl.po @@ -0,0 +1,292 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-03-26 14:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Absoluut pad om backups te bewaren" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "Auto. e-mailen wanneer backup mislukt" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "Auto. backups verwijderen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "Automatische backups van de database kunnen als volgend gepland worden:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Backup folder" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "Backups" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "Kies na hoeveel dagen de backup verwijderd moet worden. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup verwijderd worden na 5 dagen." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Configureer backup" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "Contacteer ons!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "Gemaakt door" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "Gemaakt op" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Database" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Database waar u backups voor wilt plannen" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "E-mail om te verwittigen" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 +#: constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Error! Deze database bestaat niet!" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "Vul de e-mail in waarop u wilt verwittigd worden als de backup mislukt op de FTP." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "Bijvoorbeeld: /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Ga naar Instellingen / Technsich / Automatisering / Geplande acties" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "Help" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr "IP adres SFTP server" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch een e-mail aan te krijgen als de backup +naar de externe server mislukt." + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch backups te verwijderen na xx dagen" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "Als u deze optie aanvinkt kan u de details invullen die nodig zijn om te connecteren met de externe SFTP server." + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "Lokale backup configuratie" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "Meer hulp nodig?" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr "Wachtwoord gebruiker SFTP server" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "Pad externe server" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Poort" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "SFTP verwijderen na x dagen" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "Verwijderen na x dagen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "SFTP poort" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "Zoekopties" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Zoek de actie genaamd 'Backup scheduler'." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "Zet de planner op actief en vul in hoe vaak de backup moet gemaakt worden." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "Test" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "Test SFTP Connectie" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Het IP adres van uw externe server. Bijvoorbeeld: 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "De locatie naar de folder waar de backup naar toe moet geschreven worden. Bijvoorbeeld odoo/backups/\n" +"Bestanden worden dan naar /odoo/backups/ geschreven op de externe server" + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "Het wachtwoord van de gebruiker waar de SFTP connectie mee moet gemaakt worden. Dit is het wachtwoord van de gebruiker op de externe server." + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "De poort op de FTP server die SSH/SFTP accepteert." + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "De gebruikersnaam waar de SFTP connectie mee gemaakt moet worden. Dit is de gebruiker op de externe server." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "Dit configureert de planner voor automatische backups op de ingegeven database waar de host, poort en database op zijn ingegeven voor reguliere intervallen." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Gebruik SFTP voorzichtig! Dit schrijft bestanden naar externe servers onder het pad dat u opgeeft." + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "Gebruikersnaam SFTP Server" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "Waarschuwing:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "Schrijf naar externe server met SFTP" diff --git a/auto_backup/i18n/nl_BE.po b/auto_backup/i18n/nl_BE.po new file mode 100644 index 000000000..8d739798b --- /dev/null +++ b/auto_backup/i18n/nl_BE.po @@ -0,0 +1,292 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-03-26 14:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Absoluut pad om backups te bewaren" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "Auto. e-mailen wanneer backup mislukt" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "Auto. backups verwijderen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "Automatische backups van de database kunnen als volgend gepland worden:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Backup folder" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "Backups" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "Kies na hoeveel dagen de backup verwijderd moet worden. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup verwijderd worden na 5 dagen." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Configureer backup" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "Contacteer ons!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "Gemaakt door" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "Gemaakt op" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Database" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Database waar u backups voor wilt plannen" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "E-mail om te verwittigen" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 +#: constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Error! Deze database bestaat niet!" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "Vul de e-mail in waarop u wilt verwittigd worden als de backup mislukt op de FTP." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "Bijvoorbeeld: /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Ga naar Instellingen / Technsich / Automatisering / Geplande acties" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "Help" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr "IP adres SFTP server" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch een e-mail aan te krijgen als de backup +naar de externe server mislukt." + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch backups te verwijderen na xx dagen" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "Als u deze optie aanvinkt kan u de details invullen die nodig zijn om te connecteren met de externe SFTP server." + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "Lokale backup configuratie" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "Meer hulp nodig?" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr "Wachtwoord gebruiker SFTP server" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "Pad externe server" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Poort" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "SFTP verwijderen na x dagen" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "Verwijderen na x dagen" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "SFTP poort" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "Zoekopties" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Zoek de actie genaamd 'Backup scheduler'." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "Zet de planner op actief en vul in hoe vaak de backup moet gemaakt worden." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "Test" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "Test SFTP Connectie" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Het IP adres van uw externe server. Bijvoorbeeld: 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "De locatie naar de folder waar de backup naar toe moet geschreven worden. Bijvoorbeeld odoo/backups/\n" +"Bestanden worden dan naar /odoo/backups/ geschreven op de externe server" + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "Het wachtwoord van de gebruiker waar de SFTP connectie mee moet gemaakt worden. Dit is het wachtwoord van de gebruiker op de externe server." + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "De poort op de FTP server die SSH/SFTP accepteert." + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "De gebruikersnaam waar de SFTP connectie mee gemaakt moet worden. Dit is de gebruiker op de externe server." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "Dit configureert de planner voor automatische backups op de ingegeven database waar de host, poort en database op zijn ingegeven voor reguliere intervallen." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Gebruik SFTP voorzichtig! Dit schrijft bestanden naar externe servers onder het pad dat u opgeeft." + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "Gebruikersnaam SFTP Server" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "Waarschuwing:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "Schrijf naar externe server met SFTP" diff --git a/auto_backup/i18n/zh_CN.po b/auto_backup/i18n/zh_CN.po new file mode 100644 index 000000000..8178604fc --- /dev/null +++ b/auto_backup/i18n/zh_CN.po @@ -0,0 +1,298 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-03-27 00:16+0800\n" +"Last-Translator: <>\n" +"Language-Team: Talway <1473162392@qq.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: zh_CN\n" +"X-Generator: Poedit 1.7.5\n" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "备份绝对路径" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "FTP备份失败自动邮件通知你" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "自动删除备份" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "数据库的自动备份时间安排如下:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "备份目录" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "备份" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "" +"选择后多少天备份应被删除从 FTP 服务器。例如: \n" +"如果你填写 5, 将5 天后 从FTP 服务器 删除备份文件。" + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "" +"选择后多少天备份应被删除。例如: \n" +"如果你填写5,将 5 天后删除备份。" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "数据库备份" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "邮件联系我们!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "创建者" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "创建时间" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "数据库" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "计划备份的数据库" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "E-mail邮件地址" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "错误 !这个数据库不存在 !" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "FTP备份失败时,邮件通知你详细信息" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "例如: /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "点击 设置 / 技术 / 自动化 / 计划的动作" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "帮助" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "服务器" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr " SFTP 服务器 IP 地址" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "如果您选中此选项,您可以选择自动收到通过邮件发送到外部服务器备份失败的信息。" + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "如果您选中此选项,您可以选择 xx 天后自动删除备份" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "如果您选中此选项,您可以指定需要写入 sftp 的远程服务器的详细信息。" + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "最后更新者" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "上次更新日期" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "本地备份配置" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "需要更多帮助吗?" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr " SFTP服务器密码" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "服务器目录" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "端口" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "多少天后从服务器删除" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "多少天后删除" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "SFTP 端口" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "搜索选项" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "搜索计划备份调度程序“Backup scheduler”。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "设置计划动作为有效,并填写备份间隔时间,间隔时间单位,间隔次数,执行时间等数据库具体备份方案。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "测试" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "测试 SFTP 连接" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "SFTP服务器的 IP 地址。例如: 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "" +"The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "" +"转储应将写入的文件夹位置。例如 /odoo/backups/远程服务器上,然后将写入 /odoo/backups/.\n" +"Files。" + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "从 SFTP 服务器连接该用户的密码。这是SFTP服务器上的用户密码。" + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "接受 SSH/SFTP 使用的FTP 服务器上的端口。" + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "SFTP 连接使用该用户名。这是在SFTP服务器上的用户。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "配置适用指定数据库备份 在设置服务器端口定期运行" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "请注意你的 SFTP服务器网络安全!数据库备份文件将备份到你的SFTP服务器,文件保存在设置的目录下面。" + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "SFTP服务器用户名" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "警告:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "备份到外部 sftp 服务器" diff --git a/auto_backup/models/__init__.py b/auto_backup/models/__init__.py new file mode 100644 index 000000000..7c06b2f5a --- /dev/null +++ b/auto_backup/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2004-2009 Tiny SPRL (). +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/gpl.html). + +from . import db_backup diff --git a/auto_backup/models/db_backup.py b/auto_backup/models/db_backup.py new file mode 100644 index 000000000..832b0118c --- /dev/null +++ b/auto_backup/models/db_backup.py @@ -0,0 +1,283 @@ +# -*- coding: utf-8 -*- +# © 2004-2009 Tiny SPRL (). +# © 2015 Agile Business Group +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/gpl.html). + +import os +import shutil +import tempfile +import traceback +from contextlib import contextmanager +from datetime import datetime, timedelta +from glob import iglob +from openerp import exceptions, models, fields, api, _, tools +from openerp.service import db +import logging +_logger = logging.getLogger(__name__) +try: + import pysftp +except ImportError: + _logger.warning('Cannot import pysftp') + + +class DbBackup(models.Model): + _name = 'db.backup' + _inherit = "mail.thread" + + _sql_constraints = [ + ("name_unique", "UNIQUE(name)", "Cannot duplicate a configuration."), + ("days_to_keep_positive", "CHECK(days_to_keep >= 0)", + "I cannot remove backups from the future. Ask Doc for that."), + ] + + name = fields.Char( + string="Name", + compute="_compute_name", + store=True, + help="Summary of this backup process", + ) + folder = fields.Char( + default=lambda self: self._default_folder(), + oldname="bkp_dir", + help='Absolute path for storing the backups', + required=True + ) + days_to_keep = fields.Integer( + oldname="daystokeep", + required=True, + default=0, + help="Backups older than this will be deleted automatically. " + "Set 0 to disable autodeletion.", + ) + method = fields.Selection( + selection=[("local", "Local disk"), ("sftp", "Remote SFTP server")], + default="local", + help="Choose the storage method for this backup.", + ) + sftp_host = fields.Char( + string='SFTP Server', + oldname="sftpip", + help=( + "The host name or IP address from your remote" + " server. For example 192.168.0.1" + ) + ) + sftp_port = fields.Integer( + string="SFTP Port", + default=22, + oldname="sftpport", + help="The port on the FTP server that accepts SSH/SFTP calls." + ) + sftp_user = fields.Char( + string='Username in the SFTP Server', + oldname="sftpusername", + help=( + "The username where the SFTP connection " + "should be made with. This is the user on the external server." + ) + ) + sftp_password = fields.Char( + string="SFTP Password", + oldname="sftppassword", + help="The password for the SFTP connection. If you specify a private " + "key file, then this is the password to decrypt it.", + ) + sftp_private_key = fields.Char( + string="Private key location", + help="Path to the private key file. Only the Odoo user should have " + "read permissions for that file.", + ) + + @api.model + def _default_folder(self): + """Default to ``backups`` folder inside current server datadir.""" + return os.path.join( + tools.config["data_dir"], + "backups", + self.env.cr.dbname) + + @api.multi + @api.depends("folder", "method", "sftp_host", "sftp_port", "sftp_user") + def _compute_name(self): + """Get the right summary for this job.""" + for rec in self: + if rec.method == "local": + rec.name = "%s @ localhost" % rec.folder + elif rec.method == "sftp": + rec.name = "sftp://%s@%s:%d%s" % ( + rec.sftp_user, rec.sftp_host, rec.sftp_port, rec.folder) + + @api.constrains("folder", "method") + @api.multi + def _check_folder(self): + """Do not use the filestore or you will backup your backups.""" + for s in self: + if (s.method == "local" and + s.folder.startswith( + tools.config.filestore(self.env.cr.dbname))): + raise exceptions.ValidationError( + _("Do not save backups on your filestore, or you will " + "backup your backups too!")) + + @api.multi + def action_sftp_test_connection(self): + """Check if the SFTP settings are correct.""" + try: + # Just open and close the connection + with self.sftp_connection(): + raise exceptions.Warning(_("Connection Test Succeeded!")) + except (pysftp.CredentialException, pysftp.ConnectionException): + _logger.info("Connection Test Failed!", exc_info=True) + raise exceptions.Warning(_("Connection Test Failed!")) + + @api.multi + def action_backup(self): + """Run selected backups.""" + backup = None + filename = self.filename(datetime.now()) + successful = self.browse() + + # Start with local storage + for rec in self.filtered(lambda r: r.method == "local"): + with rec.backup_log(): + # Directory must exist + try: + os.makedirs(rec.folder) + except OSError: + pass + + with open(os.path.join(rec.folder, filename), + 'wb') as destiny: + # Copy the cached backup + if backup: + with open(backup) as cached: + shutil.copyfileobj(cached, destiny) + # Generate new backup + else: + db.dump_db(self.env.cr.dbname, destiny) + backup = backup or destiny.name + successful |= rec + + # Ensure a local backup exists if we are going to write it remotely + sftp = self.filtered(lambda r: r.method == "sftp") + if sftp: + if backup: + cached = open(backup) + else: + cached = tempfile.TemporaryFile() + db.dump_db(self.env.cr.dbname, cached) + + with cached: + for rec in sftp: + with rec.backup_log(): + with rec.sftp_connection() as remote: + # Directory must exist + try: + remote.makedirs(rec.folder) + except pysftp.ConnectionException: + pass + + # Copy cached backup to remote server + with remote.open( + os.path.join(rec.folder, filename), + "wb") as destiny: + shutil.copyfileobj(cached, destiny) + successful |= rec + + # Remove old files for successful backups + successful.cleanup() + + @api.model + def action_backup_all(self): + """Run all scheduled backups.""" + return self.search([]).action_backup() + + @api.multi + @contextmanager + def backup_log(self): + """Log a backup result.""" + try: + _logger.info("Starting database backup: %s", self.name) + yield + except: + _logger.exception("Database backup failed: %s", self.name) + escaped_tb = tools.html_escape(traceback.format_exc()) + self.message_post( + "

%s

%s
" % ( + _("Database backup failed."), + escaped_tb), + subtype=self.env.ref("auto_backup.failure")) + else: + _logger.info("Database backup succeeded: %s", self.name) + self.message_post(_("Database backup succeeded.")) + + @api.multi + def cleanup(self): + """Clean up old backups.""" + now = datetime.now() + for rec in self.filtered("days_to_keep"): + with rec.cleanup_log(): + oldest = self.filename(now - timedelta(days=rec.days_to_keep)) + + if rec.method == "local": + for name in iglob(os.path.join(rec.folder, + "*.dump.zip")): + if os.path.basename(name) < oldest: + os.unlink(name) + + elif rec.method == "sftp": + with rec.sftp_connection() as remote: + for name in remote.listdir(rec.folder): + if (name.endswith(".dump.zip") and + os.path.basename(name) < oldest): + remote.unlink(name) + + @api.multi + @contextmanager + def cleanup_log(self): + """Log a possible cleanup failure.""" + try: + _logger.info("Starting cleanup process after database backup: %s", + self.name) + yield + except: + _logger.exception("Cleanup of old database backups failed: %s") + escaped_tb = tools.html_escape(traceback.format_exc()) + self.message_post( + "

%s

%s
" % ( + _("Cleanup of old database backups failed."), + escaped_tb), + subtype=self.env.ref("auto_backup.failure")) + else: + _logger.info("Cleanup of old database backups succeeded: %s", + self.name) + + @api.model + def filename(self, when): + """Generate a file name for a backup. + + :param datetime.datetime when: + Use this datetime instead of :meth:`datetime.datetime.now`. + """ + return "{:%Y_%m_%d_%H_%M_%S}.dump.zip".format(when) + + @api.multi + def sftp_connection(self): + """Return a new SFTP connection with found parameters.""" + params = { + "host": self.sftp_host, + "username": self.sftp_user, + "port": self.sftp_port, + } + _logger.debug( + "Trying to connect to sftp://%(username)s@%(host)s:%(port)d", + extra=params) + if self.sftp_private_key: + params["private_key"] = self.stfpprivatekey + if self.sftp_password: + params["private_key_pass"] = self.sftp_password + else: + params["password"] = self.sftp_password + + return pysftp.Connection(**params) diff --git a/auto_backup/security/ir.model.access.csv b/auto_backup/security/ir.model.access.csv new file mode 100644 index 000000000..ded4108f4 --- /dev/null +++ b/auto_backup/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_db_backup_read,Read db.backup,model_db_backup,base.group_erp_manager,1,0,0,0 +access_db_backup_write,Write db.backup,model_db_backup,base.group_system,1,1,1,1 diff --git a/auto_backup/static/description/icon.png b/auto_backup/static/description/icon.png new file mode 100644 index 000000000..24c59d3f5 Binary files /dev/null and b/auto_backup/static/description/icon.png differ diff --git a/auto_backup/static/description/icon.svg b/auto_backup/static/description/icon.svg new file mode 100644 index 000000000..b28b182e1 --- /dev/null +++ b/auto_backup/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/auto_backup/tests/__init__.py b/auto_backup/tests/__init__.py new file mode 100644 index 000000000..ea27b998a --- /dev/null +++ b/auto_backup/tests/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# © 2015 Agile Business Group +# © 2015 Alessio Gerace +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_auto_backup diff --git a/auto_backup/tests/test_auto_backup.py b/auto_backup/tests/test_auto_backup.py new file mode 100644 index 000000000..dac490aba --- /dev/null +++ b/auto_backup/tests/test_auto_backup.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# © 2015 Agile Business Group +# © 2015 Alessio Gerace +# © 2016 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import os +from datetime import datetime +from openerp.tests import common + + +class TestsAutoBackup(common.TransactionCase): + + def setUp(self): + super(TestsAutoBackup, self).setUp() + self.abk = self.env["db.backup"].create( + { + 'name': u'Têst backup', + } + ) + + def test_local(self): + """A local database is backed up.""" + filename = self.abk.filename(datetime.now()) + self.abk.action_backup() + generated_backup = [f for f in os.listdir(self.abk.folder) + if f >= filename] + self.assertEqual(len(generated_backup), 1) diff --git a/auto_backup/view/db_backup_view.xml b/auto_backup/view/db_backup_view.xml new file mode 100644 index 000000000..d1f11e442 --- /dev/null +++ b/auto_backup/view/db_backup_view.xml @@ -0,0 +1,108 @@ + + + + + + Automated Backups + db.backup + form + +
+

+ + + + + + +
+
+

Warning:

+ Use SFTP with caution! This writes files to external servers under the path you specify. +
+ + + + + + +
+ +
+ Automatic backups of the database can be scheduled as follows: +
    +
  1. Go to Settings / Technical / Automation / Scheduled Actions.
  2. +
  3. Search the action named 'Backup scheduler'.
  4. +
  5. Set the scheduler to active and fill in how often you want backups generated.
  6. +
+
+ +
+
+ + + Automated Backups + db.backup + tree + + + + + + + + + + + Automated Backups + db.backup + search + + + + + + + + + + + + + + + + Execute backup(s) + + + object.action_backup() + + + + + Execute backup(s) + + + action + + db.backup + client_action_multi + +
+
diff --git a/requirements.txt b/requirements.txt index c7ff0b87e..7d22f12ff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ python-ldap unidecode validate_email + pysftp