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. all month in a year.
#+BEGIN_SRC python :tangle ../inventory/models.py :padline 2 #+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): class Weekday(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
value = models.IntegerField() value = models.IntegerField()
@ -303,7 +325,10 @@ class CronJob(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
host = models.ForeignKey(Computer, on_delete=models.CASCADE) host = models.ForeignKey(Computer, on_delete=models.CASCADE)
command = models.CharField(max_length=50) 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, weekday = models.ForeignKey(Weekday, on_delete=models.CASCADE,
null=True, blank=True,) null=True, blank=True,)
day = models.ForeignKey(DayOfMonth, on_delete=models.CASCADE, 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 #+BEGIN_SRC python :tangle ../inventory/admin.py
from django.contrib import admin 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, Month, RamType, Ram, DiskType, DiskSize,
Disk, Architecture, CpuManufacturer, Disk, Architecture, CpuManufacturer,
Cpu, OperatingSystem, Raid, Computer, 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 #+BEGIN_SRC python :tangle ../inventory/admin.py :padline 2
admin.site.register(GeneralDevice) admin.site.register(GeneralDevice)
admin.site.register(HoursInDay)
admin.site.register(MinutesInHour)
admin.site.register(Weekday) admin.site.register(Weekday)
admin.site.register(DayOfMonth) admin.site.register(DayOfMonth)
admin.site.register(Month) admin.site.register(Month)

View File

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

View File

@ -17,6 +17,28 @@ class GeneralDevice(Device):
return self.name 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): class Weekday(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
value = models.IntegerField() value = models.IntegerField()
@ -218,7 +240,10 @@ class CronJob(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
host = models.ForeignKey(Computer, on_delete=models.CASCADE) host = models.ForeignKey(Computer, on_delete=models.CASCADE)
command = models.CharField(max_length=50) 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, weekday = models.ForeignKey(Weekday, on_delete=models.CASCADE,
null=True, blank=True,) null=True, blank=True,)
day = models.ForeignKey(DayOfMonth, on_delete=models.CASCADE, day = models.ForeignKey(DayOfMonth, on_delete=models.CASCADE,