def additional_data(self, form_data=None, add_manager_defaults=False): if not form_data: data = plone_session.get_additional_data(self.context) else: data = plone_session.get_additional_data(self.context) or dict() # merge the formdata for session use only, committing the # reservation only forms defined in the resource are # stored with the reservation to get proper separation data = self.merge_formdata( plone_session.get_additional_data(self.context) or dict(), utils.additional_data_dictionary(form_data, self.fti) ) plone_session.set_additional_data(self.context, data) # the default values of manager forms are added to users without # the permission right before saving if add_manager_defaults and not self.may_view_manager_sets: defaults = {} manager_ftis = self.manager_ftis for key, info in manager_ftis.items(): for name, f in field.Fields(info[1]).items(): if f.field.default is not None: fieldkey = '{}.{}'.format(key, name) defaults[fieldkey] = f.field.default data = self.merge_formdata( data, utils.additional_data_dictionary(defaults, manager_ftis) ) # on the other hand, if the user is not allowed, the data is cleared, # just in case (really more of a dev-environment problem, but it # doesn't hurt anyway) if data: if not add_manager_defaults and not self.may_view_manager_sets: manager_ftis = self.manager_ftis for form in data.keys(): if form in manager_ftis: del data[form] return data
def save(self, data): self.additional_data = utils.additional_data_dictionary(data, self.fti) def save(): self.scheduler.update_reservation_data( self.reservation, self.additional_data ) self.flash(_(u'Formdata updated')) utils.handle_action( action=save, success=self.redirect_to_context )
def save(self, data): broken = self.separate_broken_data()[1] working = utils.additional_data_dictionary(data, self.fti) if broken: self.additional_data = utils.merge_data_dictionaries(broken, working) else: self.additional_data = working def save(): if self.reservation.email != data["email"]: self.scheduler.change_email(self.token, data["email"]) self.scheduler.change_reservation_data(self.token, self.additional_data) self.flash(_(u"Formdata updated")) utils.handle_action(action=save, success=self.redirect_to_context)
def save(self, data): broken = self.separate_broken_data()[1] working = utils.additional_data_dictionary(data, self.fti) if broken: self.additional_data = utils.merge_data_dictionaries( broken, working) else: self.additional_data = working def save(): if self.reservation.email != data['email']: self.scheduler.change_email(self.token, data['email']) self.scheduler.change_reservation_data(self.token, self.additional_data) self.flash(_(u'Formdata updated')) utils.handle_action(action=save, success=self.redirect_to_context)
def get_additional_data(self, data): return utils.additional_data_dictionary(data, self.fti)