示例#1
0
 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)
示例#2
0
 def render(self,  context):
     link_id = resolve_variable(self.link_id, context, self.link_id)
     
     return generate_enable_thickbox(link_id)