mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-10-26 07:46:35 +01:00
add missing models to website.py
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
# Add FTP quota models to existing models.py
|
||||
|
||||
# Add these models to the existing file
|
||||
from django.db import models
|
||||
from .models import Websites
|
||||
class FTPQuota(models.Model):
|
||||
"""
|
||||
FTP User Quota Management
|
||||
@@ -61,4 +60,208 @@ class BandwidthResetLog(models.Model):
|
||||
ordering = ['-reset_at']
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.reset_type} - {self.domain or 'All Domains'} - {self.reset_at}"
|
||||
return f"{self.reset_type} - {self.domain or 'All Domains'} - {self.reset_at}"
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
from django.db import models
|
||||
from packages.models import Package
|
||||
from loginSystem.models import Administrator
|
||||
from datetime import datetime
|
||||
|
||||
# Create your models here.
|
||||
|
||||
class Websites(models.Model):
|
||||
admin = models.ForeignKey(Administrator, on_delete=models.PROTECT)
|
||||
package = models.ForeignKey(Package, on_delete=models.PROTECT)
|
||||
domain = models.CharField(max_length=255,unique=True)
|
||||
adminEmail = models.CharField(max_length=255)
|
||||
phpSelection = models.CharField(max_length=10)
|
||||
ssl = models.IntegerField()
|
||||
state = models.IntegerField(default=1)
|
||||
externalApp = models.CharField(max_length=30, default=None)
|
||||
config = models.TextField(default='')
|
||||
BackupLock = models.IntegerField(default=0)
|
||||
|
||||
|
||||
class ChildDomains(models.Model):
|
||||
master = models.ForeignKey(Websites,on_delete=models.CASCADE)
|
||||
domain = models.CharField(max_length=50, unique=True)
|
||||
path = models.CharField(max_length=200,default=None)
|
||||
ssl = models.IntegerField()
|
||||
phpSelection = models.CharField(max_length=10,default=None)
|
||||
alais = models.IntegerField(default=0)
|
||||
|
||||
|
||||
class Backups(models.Model):
|
||||
website = models.ForeignKey(Websites,on_delete=models.CASCADE)
|
||||
fileName = models.CharField(max_length=200)
|
||||
date = models.CharField(max_length=50)
|
||||
size = models.CharField(max_length=50)
|
||||
status = models.IntegerField(default=0)
|
||||
|
||||
class dest(models.Model):
|
||||
destLoc = models.CharField(unique=True,max_length=18)
|
||||
|
||||
class backupSchedules(models.Model):
|
||||
dest = models.ForeignKey(dest, on_delete=models.CASCADE)
|
||||
frequency = models.CharField(max_length=15)
|
||||
|
||||
class aliasDomains(models.Model):
|
||||
master = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
aliasDomain = models.CharField(max_length=75)
|
||||
|
||||
class GitLogs(models.Model):
|
||||
owner = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
date = models.DateTimeField(default=datetime.now, blank=True)
|
||||
type = models.CharField(max_length=5)
|
||||
message = models.TextField(max_length=65532)
|
||||
|
||||
class BackupJob(models.Model):
|
||||
logFile = models.CharField(max_length=1000)
|
||||
ipAddress = models.CharField(max_length=50)
|
||||
port = models.CharField(max_length=15)
|
||||
jobSuccessSites = models.IntegerField()
|
||||
jobFailedSites = models.IntegerField()
|
||||
location = models.IntegerField()
|
||||
|
||||
class BackupJobLogs(models.Model):
|
||||
owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE)
|
||||
status = models.IntegerField()
|
||||
message = models.TextField()
|
||||
|
||||
class GDrive(models.Model):
|
||||
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=50, unique=True)
|
||||
auth = models.TextField(max_length=65532, default='Inactive')
|
||||
runTime = models.CharField(max_length=20, default='NEVER')
|
||||
|
||||
class GDriveSites(models.Model):
|
||||
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
|
||||
domain = models.CharField(max_length=200)
|
||||
|
||||
class GDriveJobLogs(models.Model):
|
||||
owner = models.ForeignKey(GDrive, on_delete=models.CASCADE)
|
||||
status = models.IntegerField()
|
||||
message = models.TextField()
|
||||
|
||||
|
||||
### Normal backup models
|
||||
|
||||
class NormalBackupDests(models.Model):
|
||||
name = models.CharField(max_length=25)
|
||||
config = models.TextField()
|
||||
|
||||
class NormalBackupJobs(models.Model):
|
||||
owner = models.ForeignKey(NormalBackupDests, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=25)
|
||||
config = models.TextField()
|
||||
|
||||
class NormalBackupSites(models.Model):
|
||||
owner = models.ForeignKey(NormalBackupJobs, on_delete=models.CASCADE)
|
||||
domain = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
|
||||
class NormalBackupJobLogs(models.Model):
|
||||
owner = models.ForeignKey(NormalBackupJobs, on_delete=models.CASCADE)
|
||||
status = models.IntegerField()
|
||||
message = models.TextField()
|
||||
|
||||
class wpplugins(models.Model):
|
||||
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||
Name = models.CharField(max_length=255, default='')
|
||||
config = models.TextField()
|
||||
|
||||
class WPSites(models.Model):
|
||||
owner = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
title = models.CharField(max_length=255, default='')
|
||||
path = models.CharField(max_length=255, default='')
|
||||
FinalURL = models.CharField(max_length=255, default='')
|
||||
AutoUpdates = models.CharField(max_length=100, default='Disabled')
|
||||
PluginUpdates = models.CharField(max_length=15, default='Disabled')
|
||||
ThemeUpdates = models.CharField(max_length=15, default='Disabled')
|
||||
date = models.DateTimeField(default=datetime.now)
|
||||
WPLockState = models.IntegerField(default=1)
|
||||
|
||||
class WPStaging(models.Model):
|
||||
owner = models.ForeignKey(WPSites, on_delete=models.CASCADE)
|
||||
wpsite = models.ForeignKey(WPSites, on_delete=models.CASCADE, related_name='actual_wpsite')
|
||||
|
||||
class WPSitesBackup(models.Model):
|
||||
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||
WPSiteID = models.IntegerField(default=-1)
|
||||
WebsiteID = models.IntegerField(default=-1)
|
||||
config = models.TextField()
|
||||
|
||||
class RemoteBackupConfig(models.Model):
|
||||
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||
configtype = models.CharField(max_length=255, default='')
|
||||
config = models.TextField()
|
||||
|
||||
class RemoteBackupSchedule(models.Model):
|
||||
RemoteBackupConfig = models.ForeignKey(RemoteBackupConfig, on_delete=models.CASCADE)
|
||||
Name = models.CharField(max_length=255, default='')
|
||||
timeintervel = models.CharField(max_length=200)
|
||||
fileretention = models.CharField(max_length=200)
|
||||
lastrun = models.CharField(max_length=200)
|
||||
config = models.TextField()
|
||||
|
||||
class RemoteBackupsites(models.Model):
|
||||
owner = models.ForeignKey(RemoteBackupSchedule, on_delete=models.CASCADE)
|
||||
WPsites = models.IntegerField(null=True)
|
||||
database = models.IntegerField(null=True)
|
||||
|
||||
import time
|
||||
|
||||
class Backupsv2(models.Model):
|
||||
website = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
fileName = models.CharField(max_length=255)
|
||||
status = models.IntegerField(default=0)
|
||||
timeStamp = models.CharField(max_length=255, default=str(time.time()))
|
||||
BasePath = models.TextField(default='')
|
||||
|
||||
class BackupsLogsv2(models.Model):
|
||||
owner = models.ForeignKey(Backupsv2, on_delete=models.CASCADE)
|
||||
timeStamp = models.CharField(max_length=255, default=str(time.time()))
|
||||
message = models.TextField(default='')
|
||||
|
||||
|
||||
# Takes
|
||||
# ComposePath, MySQLPath, MySQLRootPass, MySQLDBName, MySQLDBNUser, MySQLPassword, CPUsMySQL, MemoryMySQL,
|
||||
# port, SitePath, CPUsSite, MemorySite, SiteName
|
||||
# finalURL, blogTitle, adminUser, adminPassword, adminEmail
|
||||
|
||||
### Site Type 0=wp, further tbd later
|
||||
|
||||
class DockerSites(models.Model):
|
||||
admin = models.ForeignKey(Websites, on_delete=models.CASCADE)
|
||||
ComposePath = models.TextField()
|
||||
SitePath = models.TextField()
|
||||
MySQLPath = models.TextField()
|
||||
state = models.IntegerField(default=1)
|
||||
SiteType = models.IntegerField(default=0) ## WP, Joomla etc
|
||||
MySQLDBName = models.CharField(max_length=100)
|
||||
MySQLDBNUser = models.CharField(max_length=100)
|
||||
CPUsMySQL = models.CharField(max_length=100)
|
||||
MemoryMySQL = models.CharField(max_length=100)
|
||||
port = models.CharField(max_length=100)
|
||||
CPUsSite = models.CharField(max_length=100)
|
||||
MemorySite = models.CharField(max_length=100)
|
||||
SiteName = models.CharField(unique=True, max_length=255)
|
||||
finalURL = models.TextField()
|
||||
blogTitle = models.TextField()
|
||||
adminUser = models.CharField(max_length=100)
|
||||
adminEmail = models.CharField(max_length=100)
|
||||
|
||||
class DockerPackages(models.Model):
|
||||
Name = models.CharField(max_length=100, default='')
|
||||
CPUs = models.IntegerField()
|
||||
Ram = models.IntegerField()
|
||||
Bandwidth = models.TextField()
|
||||
DiskSpace = models.TextField()
|
||||
config = models.TextField()
|
||||
|
||||
|
||||
class PackageAssignment(models.Model):
|
||||
user = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||
package = models.ForeignKey(DockerPackages, on_delete=models.CASCADE)
|
||||
Reference in New Issue
Block a user