diff --git a/IncBackups/models.py b/IncBackups/models.py index f75aafaaf..0b806b6d7 100644 --- a/IncBackups/models.py +++ b/IncBackups/models.py @@ -1,13 +1,13 @@ - - from django.db import models from websiteFunctions.models import Websites from datetime import datetime + class IncJob(models.Model): website = models.ForeignKey(Websites, on_delete=models.CASCADE) date = models.DateTimeField(default=datetime.now, blank=True) + class JobSnapshots(models.Model): job = models.ForeignKey(IncJob, on_delete=models.CASCADE) type = models.CharField(max_length=300) @@ -21,10 +21,9 @@ class BackupJob(models.Model): websiteData = models.IntegerField() websiteDatabases = models.IntegerField() websiteDataEmails = models.IntegerField() + retention = models.IntegerField() class JobSites(models.Model): job = models.ForeignKey(BackupJob, on_delete=models.CASCADE) website = models.CharField(max_length=300) - - diff --git a/IncBackups/static/IncBackups/IncBackups.js b/IncBackups/static/IncBackups/IncBackups.js index 9031c393d..79b13571e 100644 --- a/IncBackups/static/IncBackups/IncBackups.js +++ b/IncBackups/static/IncBackups/IncBackups.js @@ -599,6 +599,7 @@ app.controller('scheduleBackupInc', function ($scope, $http) { var data = { backupDestinations: $scope.backupDest, backupFreq: $scope.backupFreq, + backupRetention: $scope.backupRetention, websiteData: $scope.websiteData, websiteEmails: $scope.websiteEmails, websiteDatabases: $scope.websiteDatabases, diff --git a/IncBackups/templates/IncBackups/backupSchedule.html b/IncBackups/templates/IncBackups/backupSchedule.html index 7724ca483..54827c781 100755 --- a/IncBackups/templates/IncBackups/backupSchedule.html +++ b/IncBackups/templates/IncBackups/backupSchedule.html @@ -10,7 +10,7 @@
-

{% trans "Schedule Back up" %} - {% trans "Schedule Back up" %} - {% trans "Remote Backups" %}

@@ -50,6 +50,18 @@
+
+ +
+
+ +
+
+
+ +
diff --git a/IncBackups/views.py b/IncBackups/views.py index 27968b0de..191e65b2d 100644 --- a/IncBackups/views.py +++ b/IncBackups/views.py @@ -524,6 +524,7 @@ def submit_backup_schedule(request): backup_dest = data['backupDestinations'] backup_freq = data['backupFreq'] + backup_retention = data['backupRetention'] backup_sites = data['websitesToBeBacked'] backup_data = 1 if 'websiteData' in data else 0 @@ -531,7 +532,8 @@ def submit_backup_schedule(request): backup_databases = 1 if 'websiteDatabases' in data else 0 backup_job = BackupJob(websiteData=backup_data, websiteDataEmails=backup_emails, - websiteDatabases=backup_databases, destination=backup_dest, frequency=backup_freq) + websiteDatabases=backup_databases, destination=backup_dest, frequency=backup_freq, + retention=backup_retention) backup_job.save() for site in backup_sites: @@ -558,6 +560,7 @@ def get_current_backup_schedules(request): json_data.append({'id': items.id, 'destination': items.destination, 'frequency': items.frequency, + 'retention': items.retention, 'numberOfSites': items.jobsites_set.all().count() }) final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data}) diff --git a/backup/backupManager.py b/backup/backupManager.py index da92d6198..21314a4b2 100755 --- a/backup/backupManager.py +++ b/backup/backupManager.py @@ -886,6 +886,7 @@ class BackupManager: selectedAccount = data['selectedAccount'] name = data['name'] backupFrequency = data['backupFrequency'] + backupRetention = data['backupRetention'] currentACL = ACLManager.loadedACL(userID) @@ -894,7 +895,8 @@ class BackupManager: nbd = NormalBackupDests.objects.get(name=selectedAccount) - config = {'frequency': backupFrequency} + config = {'frequency': backupFrequency, + 'retention': backupRetention} nbj = NormalBackupJobs(owner=nbd, name=name, config=json.dumps(config)) nbj.save() @@ -1465,6 +1467,11 @@ class BackupManager: except: frequency = 'Never' + try: + retention = config[IncScheduler.retention] + except: + retention = 'Never' + try: currentStatus = config[IncScheduler.currentStatus] except: @@ -1615,6 +1622,7 @@ class BackupManager: selectedJob = data['selectedJob'] backupFrequency = data['backupFrequency'] + backupRetention = data['backupRetention'] nbj = NormalBackupJobs.objects.get(name=selectedJob) @@ -1623,6 +1631,7 @@ class BackupManager: config = json.loads(nbj.config) config[IncScheduler.frequency] = backupFrequency + config[IncScheduler.retention] = backupRetention nbj.config = json.dumps(config) nbj.save() diff --git a/backup/static/backup/backup.js b/backup/static/backup/backup.js index 49980c5f9..92ccab6a5 100755 --- a/backup/static/backup/backup.js +++ b/backup/static/backup/backup.js @@ -1247,7 +1247,8 @@ app.controller('googleDrive', function ($scope, $http) { }; var data = { selectedAccount: $scope.selectedAccount, - backupFrequency: $scope.backupFrequency + backupFrequency: $scope.backupFrequency, + backupRetention: $scope.backupRetention, }; dataurl = "/backup/changeAccountFrequencygDrive"; @@ -1654,7 +1655,8 @@ app.controller('scheduleBackup', function ($scope, $http, $window) { var data = { selectedAccount: $scope.selectedAccountAdd, name: $scope.name, - backupFrequency: $scope.backupFrequency + backupFrequency: $scope.backupFrequency, + backupRetention: $scope.backupRetention, }; dataurl = "/backup/submitBackupSchedule"; @@ -1856,7 +1858,8 @@ app.controller('scheduleBackup', function ($scope, $http, $window) { }; var data = { selectedJob: $scope.selectedJob, - backupFrequency: $scope.backupFrequency + backupFrequency: $scope.backupFrequency, + backupRetention: $scope.backupRetention, }; dataurl = "/backup/changeAccountFrequencyNormal"; diff --git a/backup/templates/backup/backupSchedule.html b/backup/templates/backup/backupSchedule.html index 61e71f478..29dab1bd3 100755 --- a/backup/templates/backup/backupSchedule.html +++ b/backup/templates/backup/backupSchedule.html @@ -12,7 +12,7 @@

{% trans "Schedule Back up" %} - {% trans "Remote Backups" %} @@ -24,7 +24,7 @@

{% trans "Create New Backup Schedule" %} + src="{% static 'images/loading.gif' %}" alt="cyberPanelLoading">

@@ -61,6 +61,16 @@
+
+ +
+
+ +
+
+
@@ -81,7 +91,7 @@

{% trans "Manage Existing Back up Schedules" %} + src="{% static 'images/loading.gif' %}" alt="cyberPanelLoading">

@@ -133,6 +143,7 @@ Last Run All Sites Frequency ({$ currently $}) + Retention ({$ currently $}) Current Status