def setUpWidgets(self, ignore_request=False): super(EditForm, self).setUpWidgets(ignore_request=ignore_request) # for translations, add a ``render_original`` method to each # widget, which will render the display widget bound to the # original (HEAD) document if self.is_translation: # !+HEAD_DOCUMENT_ITEM(mr, sep-2011) head = self.context.head form_fields = ui.setUpFields(self.context.__class__, "view") for widget in self.widgets: form_field = form_fields.get(widget.context.__name__) if form_field is None: form_field = formlib.form.Field(widget.context) # bind field to head document field = form_field.field.bind(head) # create custom widget or instantiate widget using # component lookup if form_field.custom_widget is not None: display_widget = form_field.custom_widget( field, self.request) else: display_widget = component.getMultiAdapter( (field, self.request), IDisplayWidget) display_widget.setRenderedValue(field.get(head)) # attach widget as ``render_original`` widget.render_original = display_widget
def setUpWidgets(self, ignore_request=False): self.set_untranslatable_fields_for_display() #get the translation if available language = self.request.get("language") translation = get_translation_for(self.context, language) if translation: self.is_translation = True else: self.is_translation = False context = copy(removeSecurityProxy(self.context)) for field_translation in translation: setattr(context, field_translation.field_name, field_translation.field_text) self.widgets = formlib.form.setUpEditWidgets( self.form_fields, self.prefix, context, self.request, adapters=self.adapters, ignore_request=ignore_request) if language is not None: widget = self.widgets["language"] try: self.language = language widget.vocabulary = CurrentLanguageVocabulary().__call__(self) widget.vocabulary.getTermByToken(language) except LookupError: raise BadRequest("No such language token: '%s'" % language) # if the term exists in the vocabulary, set the value on # the widget widget.setRenderedValue(language) # for translations, add a ``render_original`` method to each # widget, which will render the display widget bound to the # original (HEAD) document head = self.context form_fields = ui.setUpFields(self.context.__class__, "view") for widget in self.widgets: form_field = form_fields.get(widget.context.__name__) if form_field is None: form_field = formlib.form.Field(widget.context) # bind field to head document field = form_field.field.bind(head) # create custom widget or instantiate widget using # component lookup if form_field.custom_widget is not None: display_widget = form_field.custom_widget(field, self.request) else: display_widget = component.getMultiAdapter( (field, self.request), IDisplayWidget) display_widget.setRenderedValue(field.get(head)) # attach widget as ``render_original`` widget.render_original = display_widget
def setUpWidgets(self, ignore_request=False): self.set_untranslatable_fields_for_display() #get the translation if available language = self.request.get("language") translation = get_translation_for(self.context, language) if translation: self.is_translation = True else: self.is_translation = False context = copy(removeSecurityProxy(self.context)) for field_translation in translation: setattr(context, field_translation.field_name, field_translation.field_text) self.widgets = formlib.form.setUpEditWidgets( self.form_fields, self.prefix, context, self.request, adapters=self.adapters, ignore_request=ignore_request) if language is not None: widget = self.widgets["language"] try: self.language = language widget.vocabulary = CurrentLanguageVocabulary().__call__(self) widget.vocabulary.getTermByToken(language) except LookupError: raise BadRequest("No such language token: '%s'" % language) # if the term exists in the vocabulary, set the value on # the widget widget.setRenderedValue(language) # for translations, add a ``render_original`` method to each # widget, which will render the display widget bound to the # original (HEAD) document head = self.context form_fields = ui.setUpFields(self.context.__class__, "view") for widget in self.widgets: form_field = form_fields.get(widget.context.__name__) if form_field is None: form_field = formlib.form.Field(widget.context) # bind field to head document field = form_field.field.bind(head) # create custom widget or instantiate widget using # component lookup if form_field.custom_widget is not None: display_widget = form_field.custom_widget( field, self.request) else: display_widget = component.getMultiAdapter( (field, self.request), IDisplayWidget) display_widget.setRenderedValue(field.get(head)) # attach widget as ``render_original`` widget.render_original = display_widget
def get_form_fields(self): return ui.setUpFields(self.domain_model, self.mode)