From 1b1d847eed68823e3f296c73126604f3a263100e Mon Sep 17 00:00:00 2001 From: hwatheod Date: Thu, 7 Apr 2016 23:07:50 -0700 Subject: [PATCH] Don't clear teacher interview or training signups when editing class availability (fix #2071) (#2093) Make clearAvailableTimes() clear only Class Time Block events, not all events (for a particular teacher and program). This fixes #2071. --- esp/esp/users/models/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/esp/esp/users/models/__init__.py b/esp/esp/users/models/__init__.py index e960207cb5..988415de0f 100644 --- a/esp/esp/users/models/__init__.py +++ b/esp/esp/users/models/__init__.py @@ -64,7 +64,7 @@ -from esp.cal.models import Event +from esp.cal.models import Event, EventType from argcache import cache_function, wildcard from esp.customforms.linkfields import CustomFormsLinkModel from esp.customforms.forms import AddressWidget, NameWidget @@ -494,8 +494,12 @@ def getAvailableTimes(self, program, ignore_classes=False): # though Event shouldn't change much def clearAvailableTimes(self, program): - """ Clear this teacher's availability for a program """ - self.useravailability_set.filter(event__program=program).delete() + """ Clear this teacher's class availability (but not interviews, etc.) for a program """ + try: + class_time_block_event_type = EventType.objects.get(description='Class Time Block') + except EventType.DoesNotExist: + raise ESPError('There is no Class Time Block event type; this should always be there!') + self.useravailability_set.filter(event__program=program, event__event_type=class_time_block_event_type).delete() def addAvailableTime(self, program, timeslot, role=None): # Because the timeslot has a program, the program is unnecessary.