From c397a853714e773fb1ad593ab0c3718a60b9a01c Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 26 Dec 2017 18:13:06 +0100 Subject: [PATCH] change the cronjobs timefield to separate model relations --- docs/docs.org | 32 ++++++++++++++++++++++++++++++-- inventory/admin.py | 5 ++++- inventory/models.py | 27 ++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/docs/docs.org b/docs/docs.org index 87e2cff..67a9c6f 100644 --- a/docs/docs.org +++ b/docs/docs.org @@ -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) diff --git a/inventory/admin.py b/inventory/admin.py index 768399c..3e02eb7 100644 --- a/inventory/admin.py +++ b/inventory/admin.py @@ -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) diff --git a/inventory/models.py b/inventory/models.py index 2488528..3503c7b 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -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,