def _trim_to_time(workout, user): if not workout.can_manipulate(): return items_to_trim = [workout] cardio_session = workout.cardio_session if cardio_session: items_to_trim.append(cardio_session) total_time = sum([trimmable.get_total_time() for trimmable in items_to_trim]) target_time = user.minutes_per_day if target_time >= total_time: return trim_by_percent = 1.0 - (float(target_time) / total_time) trim_by_percent = get_new_trim_by_percent(total_time, items_to_trim, trim_by_percent) for trimmable in items_to_trim: trimmable.trim_by_percent(trim_by_percent) workout.refresh_and_save()
def _trim_by_exact_percent(self, percent): total_time = self.get_total_time() percent = get_new_trim_by_percent(total_time, self.cardio_intervals, percent) for cardio_interval in self.cardio_intervals: cardio_interval.trim_by_percent(percent)