From 43e8dcc14ce7fd3a0c9badb08edd52dad5e24459 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 30 Apr 2020 19:20:53 +0200 Subject: [PATCH] convert backup exec_days to a many-to-many field --- backups/models/backup.py | 3 +-- backups/templates/backups/backup_details.html | 4 +++- backups/tests/test_backup_detail_view.py | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/backups/models/backup.py b/backups/models/backup.py index 4682c05..296b4ef 100644 --- a/backups/models/backup.py +++ b/backups/models/backup.py @@ -24,8 +24,7 @@ class Backup(models.Model): null=True) source_path = models.CharField(max_length=200, blank=True) exec_time = models.TimeField() - exec_day = models.ForeignKey(Weekday, models.SET_NULL, blank=True, - null=True) + exec_days = models.ManyToManyField(Weekday) target_device = models.ManyToManyField(Computer, through='TargetDevice') def __str__(self): diff --git a/backups/templates/backups/backup_details.html b/backups/templates/backups/backup_details.html index b3663c2..f6c3661 100644 --- a/backups/templates/backups/backup_details.html +++ b/backups/templates/backups/backup_details.html @@ -27,7 +27,9 @@ Exec Day: - {{ backup.exec_day }} + + {% for backup in backup.exec_days.all %}{{ backup }}
{% endfor %} + diff --git a/backups/tests/test_backup_detail_view.py b/backups/tests/test_backup_detail_view.py index 0ac7e1e..49709c2 100644 --- a/backups/tests/test_backup_detail_view.py +++ b/backups/tests/test_backup_detail_view.py @@ -3,6 +3,7 @@ from mixer.backend.django import mixer from django.test import Client from core.tests import helper +from core.models import Weekday from customers.models import Customer pytestmark = pytest.mark.django_db @@ -72,3 +73,20 @@ def test_backup_detail_view_with_notification(create_admin_user): response = client.get('/backup/' + str(backup.id) + '/') assert (response.status_code == 200 and helper.in_content(response, notification)) + + +def test_backup_detail_view_with_day_relation(create_admin_user): + create_admin_user() + mixer.blend('computers.Computer', customer=mixer.SELECT) + monday = Weekday.objects.filter(name="Monday") + wednesday = Weekday.objects.filter(name="Wednesday") + backup = mixer.blend('backups.Backup', + computer=mixer.SELECT) + backup.exec_days.add(monday[0]) + backup.exec_days.add(wednesday[0]) + client = Client() + client.login(username="pharma-admin", password="password") + response = client.get('/backup/' + str(backup.id) + '/') + assert (response.status_code == 200 + and helper.in_content(response, monday[0]) + and helper.in_content(response, wednesday[0]))