def _process(self): form = CloneRepeatabilityForm() clone_calculator = get_clone_calculator(form.repeatability.data, self.event) try: dates, last_day_of_month = clone_calculator.calculate(request.form) if len(dates) > 100: raise ValueError(_("You can clone maximum of 100 times at once")) except ValueError as e: return jsonify(error={'message': e.message}) return jsonify_data(count=len(dates), dates=dates, last_day_of_month=last_day_of_month, flash=False)
def _form_for_step(self, step, set_defaults=True): if step == 1: return CloneRepeatabilityForm() elif step == 2: return CloneContentsForm(self.event, set_defaults=set_defaults) elif step == 3: default_category = (self.event.category if self.event.category.can_create_events(session.user) else None) return CloneCategorySelectForm(self.event, category=default_category) elif step == 4: return REPEAT_FORM_MAP[request.form['repeatability']](self.event, set_defaults=set_defaults) else: return None