2025-02-14 10:01:07 +05:30
|
|
|
from django.contrib import messages
|
|
|
|
|
from django.db import connection
|
|
|
|
|
from django.shortcuts import redirect, render
|
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
2025-02-13 17:14:54 +05:30
|
|
|
from horilla.decorators import (
|
|
|
|
|
hx_request_required,
|
|
|
|
|
login_required,
|
|
|
|
|
manager_can_enter,
|
|
|
|
|
owner_can_enter,
|
|
|
|
|
permission_required,
|
|
|
|
|
)
|
2025-02-14 10:01:07 +05:30
|
|
|
|
2025-02-13 17:14:54 +05:30
|
|
|
from .forms import *
|
|
|
|
|
from .gdrive import *
|
|
|
|
|
from .pgdump import *
|
2025-02-14 10:01:07 +05:30
|
|
|
from .scheduler import *
|
2025-02-13 17:14:54 +05:30
|
|
|
from .zip import *
|
|
|
|
|
|
|
|
|
|
# @login_required
|
|
|
|
|
# @permission_required("backup.add_localbackup")
|
|
|
|
|
# def local_setup(request):
|
2025-02-14 10:01:07 +05:30
|
|
|
# """
|
2025-02-13 17:14:54 +05:30
|
|
|
# function used to setup local backup.
|
|
|
|
|
|
|
|
|
|
# Parameters:
|
|
|
|
|
# request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
|
|
|
|
# Returns:
|
|
|
|
|
# GET : return local backup setup template
|
|
|
|
|
# POST : return settings
|
|
|
|
|
# """
|
|
|
|
|
# form = LocalBackupSetupForm()
|
|
|
|
|
# show = False
|
|
|
|
|
# active = False
|
|
|
|
|
# if LocalBackup.objects.exists():
|
|
|
|
|
# form = LocalBackupSetupForm(instance=LocalBackup.objects.first())
|
|
|
|
|
# show = True
|
|
|
|
|
# active = LocalBackup.objects.first().active
|
|
|
|
|
# if request.method == "POST":
|
|
|
|
|
# form = LocalBackupSetupForm(request.POST, request.FILES)
|
|
|
|
|
# if form.is_valid():
|
2025-02-14 10:01:07 +05:30
|
|
|
# form.save()
|
|
|
|
|
# stop_backup_job()
|
2025-02-13 17:14:54 +05:30
|
|
|
# messages.success(request, _("Local backup automation setup updated."))
|
2025-02-14 10:01:07 +05:30
|
|
|
# return redirect("local")
|
2025-02-13 17:14:54 +05:30
|
|
|
# return render(request, "backup/local_setup_form.html", {"form": form, "show":show, "active":active})
|
|
|
|
|
|
2025-02-14 10:01:07 +05:30
|
|
|
|
2025-02-13 17:14:54 +05:30
|
|
|
# @login_required
|
|
|
|
|
# @permission_required("backup.change_localbackup")
|
|
|
|
|
# def local_Backup_stop_or_start(request):
|
|
|
|
|
# """
|
|
|
|
|
# function used to stop or start local backup.
|
|
|
|
|
|
|
|
|
|
# Parameters:
|
|
|
|
|
# request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
2025-02-14 10:01:07 +05:30
|
|
|
# Returns:
|
2025-02-13 17:14:54 +05:30
|
|
|
# GET : return local backup setup template
|
|
|
|
|
# POST : return settings
|
|
|
|
|
# """
|
|
|
|
|
# if LocalBackup.objects.exists():
|
|
|
|
|
# local_backup = LocalBackup.objects.first()
|
|
|
|
|
# if local_backup.active == True:
|
|
|
|
|
# local_backup.active = False
|
|
|
|
|
# stop_backup_job()
|
|
|
|
|
# message = "Local Backup Automation Stopped Successfully."
|
|
|
|
|
# else:
|
|
|
|
|
# local_backup.active = True
|
|
|
|
|
# start_backup_job()
|
|
|
|
|
# message = "Local Backup Automation Started Successfully."
|
|
|
|
|
# local_backup.save()
|
|
|
|
|
# messages.success(request, _(message))
|
|
|
|
|
# return redirect("local")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# @login_required
|
|
|
|
|
# @permission_required("backup.delete_localbackup")
|
|
|
|
|
# def local_Backup_delete(request):
|
|
|
|
|
# """
|
|
|
|
|
# function used to delete local backup.
|
|
|
|
|
|
|
|
|
|
# Parameters:
|
|
|
|
|
# request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
|
|
|
|
# Returns:
|
|
|
|
|
# GET : return local backup setup template
|
|
|
|
|
# POST : return settings
|
|
|
|
|
# """
|
|
|
|
|
# if LocalBackup.objects.exists():
|
|
|
|
|
# local_backup = LocalBackup.objects.first()
|
|
|
|
|
# local_backup.delete()
|
|
|
|
|
# stop_backup_job()
|
|
|
|
|
# messages.success(request, _("Local Backup Automation Removed Successfully."))
|
|
|
|
|
# return redirect("local")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
@permission_required("backup.add_localbackup")
|
|
|
|
|
def gdrive_setup(request):
|
2025-02-14 10:01:07 +05:30
|
|
|
"""
|
2025-02-13 17:14:54 +05:30
|
|
|
function used to setup gdrive backup.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
GET : return gdrive backup setup template
|
|
|
|
|
POST : return gdrive backup update template
|
|
|
|
|
"""
|
|
|
|
|
form = GdriveBackupSetupForm()
|
|
|
|
|
show = False
|
2025-02-14 10:01:07 +05:30
|
|
|
active = False
|
2025-02-13 17:14:54 +05:30
|
|
|
if connection.vendor != "postgresql":
|
|
|
|
|
return render(request, "backup/404.html")
|
|
|
|
|
if GoogleDriveBackup.objects.exists():
|
|
|
|
|
instance = GoogleDriveBackup.objects.first()
|
|
|
|
|
form = GdriveBackupSetupForm(instance=instance)
|
|
|
|
|
show = True
|
|
|
|
|
active = GoogleDriveBackup.objects.first().active
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
form = GdriveBackupSetupForm(request.POST, request.FILES, instance=instance)
|
|
|
|
|
if form.is_valid():
|
2025-02-14 10:01:07 +05:30
|
|
|
google_drive = form.save()
|
2025-02-13 17:14:54 +05:30
|
|
|
google_drive.active = False
|
|
|
|
|
google_drive.save()
|
|
|
|
|
stop_gdrive_backup_job()
|
|
|
|
|
messages.success(request, _("gdrive backup automation setup updated."))
|
|
|
|
|
return redirect("gdrive")
|
2025-02-14 10:01:07 +05:30
|
|
|
return render(
|
|
|
|
|
request,
|
|
|
|
|
"backup/gdrive_setup_form.html",
|
|
|
|
|
{"form": form, "show": show, "active": active},
|
|
|
|
|
)
|
2025-02-13 17:14:54 +05:30
|
|
|
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
form = GdriveBackupSetupForm(request.POST, request.FILES)
|
|
|
|
|
if form.is_valid():
|
2025-02-14 10:01:07 +05:30
|
|
|
form.save()
|
2025-02-13 17:14:54 +05:30
|
|
|
messages.success(request, _("gdrive backup automation setup Created."))
|
2025-02-14 10:01:07 +05:30
|
|
|
return redirect("gdrive")
|
|
|
|
|
return render(
|
|
|
|
|
request,
|
|
|
|
|
"backup/gdrive_setup_form.html",
|
|
|
|
|
{"form": form, "show": show, "active": active},
|
|
|
|
|
)
|
2025-02-13 17:14:54 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
@permission_required("backup.change_localbackup")
|
|
|
|
|
def gdrive_Backup_stop_or_start(request):
|
|
|
|
|
"""
|
|
|
|
|
function used to stop or start gdrive backup.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
2025-02-14 10:01:07 +05:30
|
|
|
Returns:
|
2025-02-13 17:14:54 +05:30
|
|
|
GET : return gdrive backup setup template
|
|
|
|
|
POST : return gdrive backup update template
|
|
|
|
|
"""
|
2025-02-14 10:01:07 +05:30
|
|
|
if GoogleDriveBackup.objects.exists():
|
2025-02-13 17:14:54 +05:30
|
|
|
gdive_backup = GoogleDriveBackup.objects.first()
|
2025-02-14 10:01:07 +05:30
|
|
|
if gdive_backup.active == True:
|
|
|
|
|
gdive_backup.active = False
|
2025-02-13 17:14:54 +05:30
|
|
|
stop_gdrive_backup_job()
|
|
|
|
|
message = "Gdrive Backup Automation Stopped Successfully."
|
|
|
|
|
else:
|
|
|
|
|
gdive_backup.active = True
|
|
|
|
|
start_gdrive_backup_job()
|
|
|
|
|
message = "Gdrive Backup Automation Started Successfully."
|
|
|
|
|
gdive_backup.save()
|
|
|
|
|
messages.success(request, _(message))
|
|
|
|
|
return redirect("gdrive")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
@permission_required("backup.delete_localbackup")
|
|
|
|
|
def gdrive_Backup_delete(request):
|
|
|
|
|
"""
|
|
|
|
|
function used to delete gdrive backup.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
request (HttpRequest): The HTTP request object.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
GET : return gdrive backup setup template
|
|
|
|
|
"""
|
|
|
|
|
if GoogleDriveBackup.objects.exists():
|
|
|
|
|
gdrive_backup = GoogleDriveBackup.objects.first()
|
|
|
|
|
gdrive_backup.delete()
|
|
|
|
|
stop_gdrive_backup_job()
|
|
|
|
|
messages.success(request, _("Gdrive Backup Automation Removed Successfully."))
|
2025-02-14 10:01:07 +05:30
|
|
|
return redirect("gdrive")
|