def render(self, name, value, attrs = None): if value is None: value = '' final_attrs = self.build_attrs(attrs, type = self.input_type, name = name) if value != '': final_attrs['value'] = force_unicode(value) else: final_attrs['value'] = '' target_id = generate_target_id(final_attrs['base_content_type'], final_attrs['base_object_id']) data_id = generate_data_id(final_attrs['base_content_type'], final_attrs['base_object_id']) init_id = generate_init_id(final_attrs['base_content_type'], final_attrs['base_object_id']) element_class = "%s %s" % (final_attrs.get('class', ''), getattr(settings, 'RELATEDCONTENT_FIELD_CLASS', '')) target_attrs = {} target_attrs['id'] = target_id target_attrs['class'] = element_class data_attrs = {} data_attrs['id'] = data_id data_attrs['type'] = 'hidden' data_attrs['class'] = element_class data_attrs['value'] = self.get_initial_data(final_attrs['initial_data']) data_attrs['name'] = final_attrs['name'] init_attrs = {} init_attrs['id'] = init_id init_attrs['class'] = element_class relatedcontent_url = generate_relatedcontent_url(base_url = final_attrs['base_url'], mode = getattr(settings, 'UPDATE_MODES')[0], target_id = target_id, data_id = data_id) target_url = generate_thickbox_url(relatedcontent_url, final_attrs['iframe_width'], final_attrs['iframe_height']) initial_target = self.get_initial_target(final_attrs['base_object'], final_attrs['initial_data'], target_id, data_id) target = u"""<div%s>%s</div>""" % (flatatt(target_attrs), initial_target) data = u"""<input%s></input>""" % flatatt(data_attrs) init = u"""<a href='%s' %s>Select</a>""" % (target_url, flatatt(init_attrs)) thickbox_script = generate_enable_thickbox(init_id) bind_click_script = "" return mark_safe(target + "\n" + data + "\n" + init + "\n" + thickbox_script + "\n" + bind_click_script)
def render(self, context): link_id = resolve_variable(self.link_id, context, self.link_id) return generate_enable_thickbox(link_id)