2015-06-26 07:59:53 +00:00
|
|
|
from django.db import models
|
2017-01-24 05:22:12 +00:00
|
|
|
from django.utils import timezone
|
2015-06-26 07:59:53 +00:00
|
|
|
|
2016-09-25 09:00:52 +00:00
|
|
|
|
|
|
|
class SMTPConfig(models.Model):
|
2016-10-29 18:17:35 +00:00
|
|
|
server = models.CharField(max_length=128)
|
|
|
|
port = models.IntegerField(default=25)
|
|
|
|
email = models.CharField(max_length=128)
|
|
|
|
password = models.CharField(max_length=128)
|
|
|
|
tls = models.BooleanField()
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
db_table = "smtp_config"
|
|
|
|
|
|
|
|
|
|
|
|
class WebsiteConfig(models.Model):
|
2016-11-19 05:47:59 +00:00
|
|
|
base_url = models.CharField(max_length=128, default="http://127.0.0.1")
|
2016-10-29 18:17:35 +00:00
|
|
|
name = models.CharField(max_length=32, default="Online Judge")
|
|
|
|
name_shortcut = models.CharField(max_length=32, default="oj")
|
2016-11-19 09:19:04 +00:00
|
|
|
footer = models.TextField(default="Online Judge Footer")
|
2016-10-29 18:17:35 +00:00
|
|
|
# allow register
|
2016-11-19 04:32:23 +00:00
|
|
|
allow_register = models.BooleanField(default=True)
|
2016-10-29 18:17:35 +00:00
|
|
|
# submission list show all user's submission
|
2016-11-19 05:47:59 +00:00
|
|
|
submission_list_show_all = models.BooleanField(default=True)
|
2016-10-29 18:17:35 +00:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
db_table = "website_config"
|
|
|
|
|
2016-11-20 11:18:25 +00:00
|
|
|
|
|
|
|
class JudgeServer(models.Model):
|
|
|
|
hostname = models.CharField(max_length=64)
|
|
|
|
ip = models.CharField(max_length=32, blank=True, null=True)
|
|
|
|
judger_version = models.CharField(max_length=24)
|
|
|
|
cpu_core = models.IntegerField()
|
|
|
|
memory_usage = models.FloatField()
|
|
|
|
cpu_usage = models.FloatField()
|
|
|
|
last_heartbeat = models.DateTimeField()
|
|
|
|
create_time = models.DateTimeField(auto_now_add=True)
|
|
|
|
task_number = models.IntegerField(default=0)
|
|
|
|
service_url = models.CharField(max_length=128, blank=True, null=True)
|
|
|
|
|
2017-01-24 05:22:12 +00:00
|
|
|
@property
|
|
|
|
def status(self):
|
|
|
|
if (timezone.now() - self.last_heartbeat).total_seconds() > 5:
|
|
|
|
return "abnormal"
|
|
|
|
return "normal"
|
|
|
|
|
2016-11-20 11:18:25 +00:00
|
|
|
class Meta:
|
|
|
|
db_table = "judge_server"
|
|
|
|
|
|
|
|
|
|
|
|
class JudgeServerToken(models.Model):
|
|
|
|
token = models.CharField(max_length=32)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
db_table = "judge_server_token"
|