From 26607da154606234b683f89b50b9d357f5da1e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sat, 7 Sep 2013 16:33:10 +0200 Subject: [PATCH] Fix delete of assignments with related agenda items. --- openslides/assignment/models.py | 6 ------ tests/assignment/test_models.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 tests/assignment/test_models.py diff --git a/openslides/assignment/models.py b/openslides/assignment/models.py index e4f6fa570..5a14717e9 100644 --- a/openslides/assignment/models.py +++ b/openslides/assignment/models.py @@ -207,12 +207,6 @@ class Assignment(models.Model, SlideMixin): def get_agenda_title(self): return self.name - def delete(self): - # Remove any Agenda-Item, which is related to this assignment. - for item in Item.objects.filter(related_sid=self.sid): - item.delete() - super(Assignment, self).delete() - def slide(self): """ return the slide dict diff --git a/tests/assignment/test_models.py b/tests/assignment/test_models.py new file mode 100644 index 000000000..ce58931f2 --- /dev/null +++ b/tests/assignment/test_models.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" + Tests for openslides.assignment.models + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: 2011–2013 by OpenSlides team, see AUTHORS. + :license: GNU GPL, see LICENSE for more details. +""" + +from django.test.client import Client + +from openslides.utils.test import TestCase +from openslides.agenda.models import Item +from openslides.assignment.models import Assignment +from openslides.participant.models import User + + +class AssignmentModelTest(TestCase): + def setUp(self): + # Admin + self.admin = User.objects.get(pk=1) + self.admin_client = Client() + self.admin_client.login(username='admin', password='admin') + + def test_delete_with_related_item(self): + assignment = Assignment.objects.create(name='assignment_name_fgdhensbch34zfu1284ds', posts=1) + response = self.admin_client.get('/assignment/1/agenda/') + self.assertRedirects(response, '/agenda/') + self.assertEqual(Item.objects.get(pk=1).get_title(), 'assignment_name_fgdhensbch34zfu1284ds') + assignment.delete() + self.assertTrue(Item.objects.filter(pk=1).exists())