def move(self, queryset, direction): try: if direction in ['left', 'up', 'previous', 'back']: swappee, unused = get_previous_and_next(queryset, self) elif direction in ['right', 'down', 'next', 'forward']: unused, swappee = get_previous_and_next(queryset, self) else: raise AssertionError(f'Invalid direction: {direction}') except self.__class__.DoesNotExist: raise IndexError(f'Cannot go {direction} from here') if self.order == swappee.order: raise ValueError(f'Unable to swap because {self} and {swappee} have same order: {self.order}') self.order, swappee.order = swappee.order, self.order self.save() swappee.save()
def move(self, queryset, direction): try: if direction in ['left', 'up', 'previous', 'back']: swappee, unused = get_previous_and_next(queryset, self) elif direction in ['right', 'down', 'next', 'forward']: unused, swappee = get_previous_and_next(queryset, self) else: raise AssertionError(f'Invalid direction: {direction}') except self.__class__.DoesNotExist: raise IndexError(f'Cannot go {direction} from here') if self.order == swappee.order: raise ValueError( f'Unable to swap because {self} and {swappee} have same order: {self.order}' ) self.order, swappee.order = swappee.order, self.order self.save() swappee.save()
def get_previous_and_next_signup(self): queryset = self.event.signup_set.order_by('person__surname', 'person__first_name', 'id').all() return get_previous_and_next(queryset, self)
def get_previous_and_next_programme(self): queryset = ProgrammeManagementProxy.objects.filter(category__event=self.category.event).order_by('title') return get_previous_and_next(queryset, self)