change the cronjobs timefield to separate model relations

This commit is contained in:
Andreas Zweili 2017-12-26 18:13:06 +01:00
parent 4a21cc6ad3
commit c397a85371
3 changed files with 60 additions and 4 deletions

View File

@ -46,6 +46,28 @@ These models contain all the days of the week the days in a month and
all month in a year.
#+BEGIN_SRC python :tangle ../inventory/models.py :padline 2
class HoursInDay(models.Model):
name = models.IntegerField()
def __str__(self):
return str(self.name)
class Meta:
verbose_name_plural = "Hours"
ordering = ['name']
class MinutesInHour(models.Model):
name = models.IntegerField()
def __str__(self):
return str(self.name)
class Meta:
verbose_name_plural = "Minutes"
ordering = ['name']
class Weekday(models.Model):
name = models.CharField(max_length=50)
value = models.IntegerField()
@ -303,7 +325,10 @@ class CronJob(models.Model):
name = models.CharField(max_length=50)
host = models.ForeignKey(Computer, on_delete=models.CASCADE)
command = models.CharField(max_length=50)
time = models.TimeField(null=True, blank=True,)
minutes = models.ForeignKey(MinutesInHour, on_delete=models.CASCADE,
null=True, blank=True,)
hours = models.ForeignKey(HoursInDay, on_delete=models.CASCADE,
null=True, blank=True,)
weekday = models.ForeignKey(Weekday, on_delete=models.CASCADE,
null=True, blank=True,)
day = models.ForeignKey(DayOfMonth, on_delete=models.CASCADE,
@ -327,7 +352,8 @@ We have to import each model we want to use.
#+BEGIN_SRC python :tangle ../inventory/admin.py
from django.contrib import admin
from inventory.models import (GeneralDevice, Weekday, DayOfMonth,
from inventory.models import (GeneralDevice, HoursInDay,
MinutesInHour, Weekday, DayOfMonth,
Month, RamType, Ram, DiskType, DiskSize,
Disk, Architecture, CpuManufacturer,
Cpu, OperatingSystem, Raid, Computer,
@ -375,6 +401,8 @@ want to use something different than the default one.
#+BEGIN_SRC python :tangle ../inventory/admin.py :padline 2
admin.site.register(GeneralDevice)
admin.site.register(HoursInDay)
admin.site.register(MinutesInHour)
admin.site.register(Weekday)
admin.site.register(DayOfMonth)
admin.site.register(Month)

View File

@ -1,5 +1,6 @@
from django.contrib import admin
from inventory.models import (GeneralDevice, Weekday, DayOfMonth,
from inventory.models import (GeneralDevice, HoursInDay,
MinutesInHour, Weekday, DayOfMonth,
Month, RamType, Ram, DiskType, DiskSize,
Disk, Architecture, CpuManufacturer,
Cpu, OperatingSystem, Raid, Computer,
@ -32,6 +33,8 @@ class ComputerAdmin(admin.ModelAdmin):
admin.site.register(GeneralDevice)
admin.site.register(HoursInDay)
admin.site.register(MinutesInHour)
admin.site.register(Weekday)
admin.site.register(DayOfMonth)
admin.site.register(Month)

View File

@ -17,6 +17,28 @@ class GeneralDevice(Device):
return self.name
class HoursInDay(models.Model):
name = models.IntegerField()
def __str__(self):
return str(self.name)
class Meta:
verbose_name_plural = "Hours"
ordering = ['name']
class MinutesInHour(models.Model):
name = models.IntegerField()
def __str__(self):
return str(self.name)
class Meta:
verbose_name_plural = "Minutes"
ordering = ['name']
class Weekday(models.Model):
name = models.CharField(max_length=50)
value = models.IntegerField()
@ -218,7 +240,10 @@ class CronJob(models.Model):
name = models.CharField(max_length=50)
host = models.ForeignKey(Computer, on_delete=models.CASCADE)
command = models.CharField(max_length=50)
time = models.TimeField(null=True, blank=True,)
minutes = models.ForeignKey(MinutesInHour, on_delete=models.CASCADE,
null=True, blank=True,)
hours = models.ForeignKey(HoursInDay, on_delete=models.CASCADE,
null=True, blank=True,)
weekday = models.ForeignKey(Weekday, on_delete=models.CASCADE,
null=True, blank=True,)
day = models.ForeignKey(DayOfMonth, on_delete=models.CASCADE,