diff --git a/auto_backup/.gitattributes b/auto_backup/.gitattributes deleted file mode 100644 index bdb0cab..0000000 --- a/auto_backup/.gitattributes +++ /dev/null @@ -1,17 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/auto_backup/.gitignore b/auto_backup/.gitignore deleted file mode 100644 index 8693bc3..0000000 --- a/auto_backup/.gitignore +++ /dev/null @@ -1,56 +0,0 @@ -# Python compiled files -*.pyc -*.pyo - -# editor backups(vim,gedit) -*.swp -*~ - -# Source code backups & tool logs -*.orig -*.bak -*.log - -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# ========================= -# Operating System Files -# ========================= - -# OSX -# ========================= - -.DS_Store -.AppleDouble -.LSOverride - -# Thumbnails -._* - -# Files that might appear on external disk -.Spotlight-V100 -.Trashes - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk diff --git a/auto_backup/README.rst b/auto_backup/README.rst deleted file mode 100644 index 2850e77..0000000 --- a/auto_backup/README.rst +++ /dev/null @@ -1,157 +0,0 @@ -==================== -Database Auto-Backup -==================== - -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png - :target: https://odoo-community.org/page/development-status - :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 -.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/12.0/auto_backup - :alt: OCA/server-tools -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-auto_backup - :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/149/12.0 - :alt: Try me on Runbot - -|badge1| |badge2| |badge3| |badge4| |badge5| - -A tool for all your back-ups, internal and external! - -**Table of contents** - -.. contents:: - :local: - -Installation -============ - -Before installing this module, you need to execute:: - - pip3 install pysftp==0.2.8 - - -Configuration -============= - -Go to *Settings -> Database Structure -> Automated 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/11.0 - -Known issues / Roadmap -====================== - -* On larger databases, it is possible that backups will die due to Odoo server - settings. In order to circumvent this without frivolously changing settings, - you need to run the backup from outside of the main Odoo instance. How to do - this is outlined in `this blog post - `_. -* Backups won't work if list_db=False is configured in the instance. - -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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -~~~~~~~ - -* Yenthe Van Ginneken -* Agile Business Group -* Grupo ESOC Ingenieria de Servicios -* LasLabs -* AdaptiveCity - -Contributors -~~~~~~~~~~~~ - -* Yenthe Van Ginneken -* Alessio Gerace -* Jairo Llopis -* Dave Lasley -* Andrea Stirpe -* Aitor Bouzas - -Maintainers -~~~~~~~~~~~ - -This module is maintained by the OCA. - -.. image:: https://odoo-community.org/logo.png - :alt: Odoo Community Association - :target: https://odoo-community.org - -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. - -This module is part of the `OCA/server-tools `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/auto_backup/__init__.py b/auto_backup/__init__.py deleted file mode 100644 index 31660d6..0000000 --- a/auto_backup/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import models diff --git a/auto_backup/__manifest__.py b/auto_backup/__manifest__.py deleted file mode 100644 index b2a5b66..0000000 --- a/auto_backup/__manifest__.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2004-2009 Tiny SPRL (). -# Copyright 2015 Agile Business Group -# Copyright 2016 Grupo ESOC Ingenieria de Servicios, S.L.U. - Jairo Llopis -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -{ - "name": "Database Auto-Backup", - "summary": "Backups database", - "version": "12.0.1.0.0", - "author": - "Yenthe Van Ginneken, " - "Agile Business Group, " - "Grupo ESOC Ingenieria de Servicios, " - "LasLabs, " - "AdaptiveCity, " - "Odoo Community Association (OCA)", - "license": "AGPL-3", - "website": "https://github.com/OCA/server-tools/", - "category": "Tools", - "depends": [ - "mail", - ], - "data": [ - "data/ir_cron.xml", - "data/mail_message_subtype.xml", - "security/ir.model.access.csv", - "view/db_backup_view.xml", - ], - "installable": True, - "external_dependencies": { - "python": ["pysftp"], - }, -} diff --git a/auto_backup/__openerp__.py b/auto_backup/__openerp__.py deleted file mode 100644 index 1848252..0000000 --- a/auto_backup/__openerp__.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- 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.3", - "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/ir_cron.xml", - "data/mail_message_subtype.xml", - "security/ir.model.access.csv", - "view/db_backup_view.xml", - ], - "application": True, - "installable": True, - "external_dependencies": { - #"python": ["pysftp"], - }, -} diff --git a/auto_backup/backup_data.xml b/auto_backup/backup_data.xml deleted file mode 100644 index 0ab3c10..0000000 --- a/auto_backup/backup_data.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/auto_backup/backup_scheduler.py b/auto_backup/backup_scheduler.py deleted file mode 100644 index 5210ecf..0000000 --- a/auto_backup/backup_scheduler.py +++ /dev/null @@ -1,263 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved -# $Id$ -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## - -import xmlrpclib -import socket -import os -import time -import datetime -import base64 -import re -try: - import pysftp -except ImportError: - raise ImportError('This module needs pysftp to automaticly write backups to the FTP through SFTP. Please install pysftp on your system. (sudo pip install pysftp)') -from openerp.osv import fields,osv,orm -from openerp import tools -from openerp import netsvc -from openerp import tools, _ -import logging -_logger = logging.getLogger(__name__) - -def execute(connector, method, *args): - res = False - try: - res = getattr(connector,method)(*args) - except socket.error,e: - raise e - return res - -addons_path = tools.config['addons_path'] + '/auto_backup/DBbackups' - -class db_backup(osv.Model): - _name = 'db.backup' - - def get_db_list(self, cr, user, ids, host='localhost', port='8069', context={}): - uri = 'http://' + host + ':' + port - conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/db') - db_list = execute(conn, 'list') - return db_list - - def _get_db_name(self,cr,uid, vals,context=None): - attach_pool = self.pool.get("ir.logging") - dbName = cr.dbname - return dbName - - _columns = { - #Columns local server - 'host' : fields.char('Host', size=100, required='True'), - 'port' : fields.char('Port', size=10, required='True'), - 'name' : fields.char('Database', size=100, required='True',help='Database you want to schedule backups for'), - 'bkp_dir' : fields.char('Backup Directory', size=100, help='Absolute path for storing the backups', required='True'), - 'autoremove': fields.boolean('Auto. Remove Backups', help="If you check this option you can choose to automaticly remove the backup after xx days"), - 'daystokeep': fields.integer('Remove after x days', - help="Choose after how many days the backup should be deleted. For example:\nIf you fill in 5 the backups will be removed after 5 days.",required=True), - #Columns for external server (SFTP) - 'sftpwrite': fields.boolean('Write to external server with sftp', help="If you check this option you can specify the details needed to write to a remote server with SFTP."), - 'sftppath': fields.char('Path external server', help="The location to the folder where the dumps should be written to. For example /odoo/backups/.\nFiles will then be written to /odoo/backups/ on your remote server."), - 'sftpip': fields.char('IP Address SFTP Server', help="The IP address from your remote server. For example 192.168.0.1"), - 'sftpusername': fields.char('Username SFTP Server', help="The username where the SFTP connection should be made with. This is the user on the external server."), - 'sftppassword': fields.char('Password User SFTP Server', help="The password from the user where the SFTP connection should be made with. This is the password from the user on the external server."), - 'daystokeepsftp': fields.integer('Remove SFTP after x days', help="Choose after how many days the backup should be deleted from the FTP server. For example:\nIf you fill in 5 the backups will be removed after 5 days from the FTP server."), - 'sendmailsftpfail': fields.boolean('Auto. E-mail on backup fail', help="If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed."), - 'emailtonotify': fields.char('E-mail to notify', help="Fill in the e-mail where you want to be notified that the backup failed on the FTP."), - } - - _defaults = { - #'bkp_dir' : lambda *a : addons_path, - 'bkp_dir' : '/odoo/backups', - 'host' : lambda *a : 'localhost', - 'port' : lambda *a : '8069', - 'name': _get_db_name, - 'daystokeepsftp': 30, - } - - def _check_db_exist(self, cr, user, ids): - for rec in self.browse(cr,user,ids): - db_list = self.get_db_list(cr, user, ids, rec.host, rec.port) - if rec.name in db_list: - return True - return False - - _constraints = [ - (_check_db_exist, _('Error ! No such database exists!'), []) - ] - - - def test_sftp_connection(self, cr, uid, ids, context=None): - conf_ids= self.search(cr, uid, []) - confs = self.browse(cr,uid,conf_ids) - #Check if there is a success or fail and write messages - messageTitle = "" - messageContent = "" - for rec in confs: - db_list = self.get_db_list(cr, uid, [], rec.host, rec.port) - try: - pathToWriteTo = rec.sftppath - ipHost = rec.sftpip - usernameLogin = rec.sftpusername - passwordLogin = rec.sftppassword - #Connect with external server over SFTP, so we know sure that everything works. - srv = pysftp.Connection(host=ipHost, username=usernameLogin, -password=passwordLogin) - srv.close() - #We have a success. - messageTitle = "Connection Test Succeeded!" - messageContent = "Everything seems properly set up for FTP back-ups!" - except Exception, e: - messageTitle = "Connection Test Failed!" - if len(rec.sftpip) < 8: - messageContent += "\nYour IP address seems to be too short.\n" - messageContent += "Here is what we got instead:\n" - if "Failed" in messageTitle: - raise osv.except_osv(_(messageTitle), _(messageContent + "%s") % tools.ustr(e)) - else: - raise osv.except_osv(_(messageTitle), _(messageContent)) - - def schedule_backup(self, cr, user, context={}): - conf_ids= self.search(cr, user, []) - confs = self.browse(cr,user,conf_ids) - for rec in confs: - db_list = self.get_db_list(cr, user, [], rec.host, rec.port) - if rec.name in db_list: - try: - if not os.path.isdir(rec.bkp_dir): - os.makedirs(rec.bkp_dir) - except: - raise - #Create name for dumpfile. - bkp_file='%s_%s.dump' % (time.strftime('%d_%m_%Y_%H_%M_%S'),rec.name) - file_path = os.path.join(rec.bkp_dir,bkp_file) - uri = 'http://' + rec.host + ':' + rec.port - conn = xmlrpclib.ServerProxy(uri + '/xmlrpc/db') - bkp='' - try: - bkp = execute(conn, 'dump', tools.config['admin_passwd'], rec.name) - except: - logger.notifyChannel('backup', netsvc.LOG_INFO, "Couldn't backup database %s. Bad database administrator password for server running at http://%s:%s" %(rec.name, rec.host, rec.port)) - continue - fp = open(file_path,'wb') - bkp = base64.decodestring(bkp) - fp.write(bkp) - fp.close() - else: - logger.notifyChannel('backup', netsvc.LOG_INFO, "database %s doesn't exist on http://%s:%s" %(rec.name, rec.host, rec.port)) - - #Check if user wants to write to SFTP or not. - if rec.sftpwrite is True: - try: - #Store all values in variables - dir = rec.bkp_dir - pathToWriteTo = rec.sftppath - ipHost = rec.sftpip - usernameLogin = rec.sftpusername - passwordLogin = rec.sftppassword - #Connect with external server over SFTP - srv = pysftp.Connection(host=ipHost, username=usernameLogin, -password=passwordLogin) - #set keepalive to prevent socket closed / connection dropped error - srv._transport.set_keepalive(30) - #Move to the correct directory on external server. If the user made a typo in his path with multiple slashes (/odoo//backups/) it will be fixed by this regex. - pathToWriteTo = re.sub('([/]{2,5})+','/',pathToWriteTo) - print(pathToWriteTo) - try: - srv.chdir(pathToWriteTo) - except IOError: - #Create directory and subdirs if they do not exist. - currentDir = '' - for dirElement in pathToWriteTo.split('/'): - currentDir += dirElement + '/' - try: - srv.chdir(currentDir) - except: - print('(Part of the) path didn\'t exist. Creating it now at ' + currentDir) - #Make directory and then navigate into it - srv.mkdir(currentDir, mode=777) - srv.chdir(currentDir) - pass - srv.chdir(pathToWriteTo) - #Loop over all files in the directory. - for f in os.listdir(dir): - fullpath = os.path.join(dir, f) - if os.path.isfile(fullpath): - print(fullpath) - srv.put(fullpath) - - #Navigate in to the correct folder. - srv.chdir(pathToWriteTo) - - #Loop over all files in the directory from the back-ups. - #We will check the creation date of every back-up. - for file in srv.listdir(pathToWriteTo): - #Get the full path - fullpath = os.path.join(pathToWriteTo,file) - #Get the timestamp from the file on the external server - timestamp = srv.stat(fullpath).st_atime - createtime = datetime.datetime.fromtimestamp(timestamp) - now = datetime.datetime.now() - delta = now - createtime - #If the file is older than the daystokeepsftp (the days to keep that the user filled in on the Odoo form it will be removed. - if delta.days >= rec.daystokeepsftp: - #Only delete files, no directories! - if srv.isfile(fullpath) and ".dump" in file: - print("Delete: " + file) - srv.unlink(file) - #Close the SFTP session. - srv.close() - except Exception, e: - _logger.debug('Exception! We couldn\'t back up to the FTP server..') - #At this point the SFTP backup failed. We will now check if the user wants - #an e-mail notification about this. - if rec.sendmailsftpfail: - try: - ir_mail_server = self.pool.get('ir.mail_server') - message = "Dear,\n\nThe backup for the server " + rec.host + " (IP: " + rec.sftpip + ") failed.Please check the following details:\n\nIP address SFTP server: " + rec.sftpip + "\nUsername: " + rec.sftpusername + "\nPassword: " + rec.sftppassword + "\n\nError details: " + tools.ustr(e) + "\n\nWith kind regards" - msg = ir_mail_server.build_email("auto_backup@" + rec.name + ".com", [rec.emailtonotify], "Backup from " + rec.host + "(" + rec.sftpip + ") failed", message) - ir_mail_server.send_email(cr, user, msg) - except Exception: - pass - - """Remove all old files (on local server) in case this is configured.. - This is done after the SFTP writing to prevent unusual behaviour: - If the user would set local back-ups to be kept 0 days and the SFTP - to keep backups xx days there wouldn't be any new back-ups added to the - SFTP. - If we'd remove the dump files before they're writen to the SFTP there willbe nothing to write. Meaning that if an user doesn't want to keep back-ups locally and only wants them on the SFTP (NAS for example) there wouldn't be any writing to the remote server if this if statement was before the SFTP write method right above this comment. - """ - if rec.autoremove is True: - dir = rec.bkp_dir - #Loop over all files in the directory. - for f in os.listdir(dir): - fullpath = os.path.join(dir, f) - timestamp = os.stat(fullpath).st_ctime - createtime = datetime.datetime.fromtimestamp(timestamp) - now = datetime.datetime.now() - delta = now - createtime - if delta.days >= rec.daystokeep: - #Only delete files (which are .dump), no directories. - if os.path.isfile(fullpath) and ".dump" in f: - print("Delete: " + fullpath) - os.remove(fullpath) - -db_backup() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/auto_backup/bkp_conf_view.xml b/auto_backup/bkp_conf_view.xml deleted file mode 100644 index 724369a..0000000 --- a/auto_backup/bkp_conf_view.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - Configure Backup - db.backup - form - -
- - - - - - - - - - - - - - - -
Warning: Use SFTP with caution! This writes files to external servers under the path you specify.
- - - - - - - - - - - - -
- - - Create missing indexes - ir.actions.server - code - - action = env.get('cleanup.create_indexes.wizard').get_wizard_action() - - - - cleanup.create_indexes.line - - primary - - - - - - - Create - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/menu.xml b/database_cleanup/views/menu.xml deleted file mode 100644 index fcaebbe..0000000 --- a/database_cleanup/views/menu.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - Database cleanup - - - - - - - - Purge obsolete modules - - - - - - - Purge obsolete models - - - - - - - Purge obsolete columns - - - - - - - Purge obsolete tables - - - - - - - Purge obsolete data entries - - - - - - - Purge obsolete menu entries - - - - - - - Create missing indexes - - - - - - - Purge obsolete properties - - - - - diff --git a/database_cleanup/views/purge_columns.xml b/database_cleanup/views/purge_columns.xml deleted file mode 100644 index e8c4056..0000000 --- a/database_cleanup/views/purge_columns.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - cleanup.purge.wizard.column - - primary - - - - - - - - - Purge columns - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.column').get_wizard_action() - - - - - cleanup.purge.line.column - - primary - - - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_data.xml b/database_cleanup/views/purge_data.xml deleted file mode 100644 index 42cd270..0000000 --- a/database_cleanup/views/purge_data.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - cleanup.purge.wizard.data - - primary - - - - - - - - - Purge data entries that refer to missing resources - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.data').get_wizard_action() - - - - - cleanup.purge.line.data - - primary - - - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_menus.xml b/database_cleanup/views/purge_menus.xml deleted file mode 100644 index 09e6582..0000000 --- a/database_cleanup/views/purge_menus.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - cleanup.purge.wizard.menu - - primary - - - - - - - Purge menus - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.menu').get_wizard_action() - - - - - cleanup.purge.line.menu - - primary - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_models.xml b/database_cleanup/views/purge_models.xml deleted file mode 100644 index a72e189..0000000 --- a/database_cleanup/views/purge_models.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - cleanup.purge.wizard.model - - primary - - - - - - - Purge models - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.model').get_wizard_action() - - - - - cleanup.purge.line.model - - primary - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_modules.xml b/database_cleanup/views/purge_modules.xml deleted file mode 100644 index d105c7b..0000000 --- a/database_cleanup/views/purge_modules.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - cleanup.purge.wizard.module - - primary - - - - - - - Purge modules - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.module').get_wizard_action() - - - - - cleanup.purge.line.module - - primary - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_properties.xml b/database_cleanup/views/purge_properties.xml deleted file mode 100644 index ca03cf7..0000000 --- a/database_cleanup/views/purge_properties.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - cleanup.purge.wizard.property - - primary - - - - - - - Purge properties - ir.actions.server - code - - action = env.get('cleanup.purge.wizard.property').get_wizard_action() - - - - cleanup.purge.line.property - - primary - - - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_tables.xml b/database_cleanup/views/purge_tables.xml deleted file mode 100644 index d255e77..0000000 --- a/database_cleanup/views/purge_tables.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - cleanup.purge.wizard.table - - primary - - - - - - - Purge tables - ir.actions.server - code - - - action = env.get('cleanup.purge.wizard.table').get_wizard_action() - - - - - cleanup.purge.line.table - - primary - - - - - - - Purge - ir.actions.server - code - - records.purge() - - - diff --git a/database_cleanup/views/purge_wizard.xml b/database_cleanup/views/purge_wizard.xml deleted file mode 100644 index 5f909e3..0000000 --- a/database_cleanup/views/purge_wizard.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - cleanup.purge.wizard - -
-
-
-
- Nothing found to clean up. -
- - - - - - -
-
- -
- -
-
- - cleanup.purge.line - - - - -