def media(self): from django.contrib.admin.templatetags.admin_static import static media = super(ImageInlineAdmin, self).media js_list = [ static("ffiler/js/jquery.magnific-popup.min.js"), static("ffiler/js/sortable.js"), static("ffiler/js/ffiler.js"), static("ffiler/js/django_transport.js"), static("ffiler/js/jquery.magnific-popup.min.js"), ] css_list = { 'all': [ static('ffiler/css/magnific-popup.css'), static('ffiler/css/ffiler.css'), ] } if not self.exclude_bootstrap_css: css_list['all'].insert(0, static('ffiler/css/bootstrap.css')) if not self.exclude_bootstrap_js: js_list.insert(0, static("ffiler/js/bootstrap.min.js")) if not self.exclude_jquery: js_list.insert(0, static("ffiler/js/jq.2.0.3.js"), ) media.add_js(js_list) media.add_css(css_list) return media
def media(self): media = super(ReadOnlyInline, self).media js = [static('glaze/js/admin.js')] css = [static('glaze/css/admin.css')] media.add_js(js) media.add_css(dict(all=css)) return media
def _upgrade_jquery(self, media): # upgrade jquery and cms jquery UI new_media = Media() new_media.add_css(media._css) new_jquery_version = static('cms_blogger/js/jquery-1.9.1.min.js') new_jquery_ui_version = static('cms_blogger/js/jquery-ui.min.js') # make sure all jquery namespaces point to the same jquery jquery_namspace = static('cms_blogger/js/jQuery-patch.js') django_jquery_urls = [static('admin/js/jquery.js'), static('admin/js/jquery.min.js')] django_collapse_js = [static('admin/js/collapse.js'), static('admin/js/collapse.min.js')] for js in media._js: if js in django_jquery_urls: new_media.add_js((new_jquery_version, )) elif js in django_collapse_js: new_media.add_js( (static('cms_blogger/js/admin-collapse.js'), )) elif js == static('admin/js/jquery.init.js'): new_media.add_js((js, jquery_namspace)) elif js.startswith(static('cms/js/libs/jquery.ui.')): new_media.add_js((new_jquery_ui_version, )) else: new_media.add_js((js, )) return new_media
def media(self): prefix = 'django-netjsonconfig/' js = [static('{0}/js/{1}'.format(prefix, f)) for f in ('jsonschemaeditor.js', 'jsonschemaeditor_widget.js')] css = {'all': (static('{0}css/jsonschemaeditor.css'.format(prefix)),)} return forms.Media(js=js, css=css)
def media(self): media = super(GlazeModelAdmin, self).media js = [static('glaze/js/admin.js')] css = [static('glaze/css/admin.css')] media.add_js(js) media.add_css(dict(all=css)) return media
def test_RedactorWidget_media(self): widget = RedactorWidget() js_url = static(widget.Media.js[0]) css_url = static(widget.Media.css['all'][0]) self.assertHTMLEqual(str(widget.media), '<link href="%s" media="all" rel="stylesheet" ' 'type="text/css" /><script src="%s" ' 'type="text/javascript" />' % (css_url, js_url))
def media(self): media_obj = super(ProfileGridPromoPlugin, self).media media_obj.add_css({"all": (static("admin/css/profile_admin.css"),)}) media_obj.add_js( (static("admin/js/lib/jquery-ui.min.js"), static("admin/js/lib/jquery.inputlimiter.1.3.1.min.js")) ) return media_obj
def media(self): js = [static('admin/js/SelectBox.js'), static('extradmin/js/jquery.relatedobjectlookup.js')] if self.prepopulated_fields: js.extend(static('admin/js/urlify.js'), static('extradmin/js/jquery.prepopulate.js')) if self.tabs: js.append(static('extradmin/js/jquery-ui.lemon.tabs.js')) return forms.Media(js=js)
def media(self): media = super(NumericModelAdmin, self).media js = media._js js.append(static('admin/js/admin/NumericFieldListFilter.js')) css = { 'screen': [static('admin/css/admin/NumericFieldListFilter.css')] } return forms.Media(js=js, css=css)
def media(self): ''' csss = { 'all': ('admin/css/widgets.css',) } ''' js = ["core.js","vendor/jquery/jquery.js","jquery.init.js","calendar.js"] #return forms.Media(js=[static('/admin/jsi18n/')] + [static("admin/js/%s" % path) for path in js],css=csss) return forms.Media(js=[static('/admin/jsi18n/')] + [static("admin/js/%s" % path) for path in js])
def media(self): return super(AttachmentInline, self).media + forms.Media( js=[ static('django_attach/js/queue.v1.min.js'), static('django_attach/js/d3.v3.min.js'), static('django_attach/js/attachment_inline.js'), ], css={'screen': [static('django_attach/css/attachment_inline.css')]}, )
def render(self, name, value, attrs=None, renderer=None): final_attrs = self.build_attrs(attrs) element_id = final_attrs.get('id') kwargs = {'upload_to': self.upload_to, 'max_width': self.max_width, 'max_height': self.max_height, 'crop': self.crop} upload_url = reverse('ajaximage', kwargs=kwargs) # NB convert to string and do not rely on value.url # value.url fails when rendering form with validation errors because # form value is not a FieldFile. Use storage.url and file_path - works # with FieldFile instances and string formdata #file_path = str(value) if value else '' #file_url = default_storage.url(file_path) if value else '' #file_name = os.path.basename(file_url) #output = self.html.format(upload_url=upload_url, # file_url=file_url, # file_name=file_name, # file_path=file_path, # element_id=element_id, # name=name) #INICIO thumbs para fields ajaximage# #modificado também self.html# file_path = str(value) if value else '' file_url = hasattr(value, 'url') and value.url or value or '' file_name = os.path.basename(file_url) if value and self.upload_to == 'fotos': thumb_url = static(get_thumbnailer(value)['admin_imovel_fieldsets'].url) foto_url = static(get_thumbnailer(value)['imovel_fotos'].url) if value and self.upload_to == 'slides': thumb_url = static(get_thumbnailer(value)['admin_slides_thumb'].url) foto_url = static(file_url) output = self.html.format( upload_url=upload_url, file_url=file_url and thumb_url or file_url, file_name=file_name and foto_url or file_url, file_path=file_path, element_id=element_id, name=name) #FIM# return mark_safe(output)
def media(self): try: if getattr(self.request, self.media_attr): return forms.Media() except AttributeError: setattr(self.request, self.media_attr, True) return forms.Media( js=[static(path) for path in self.js], css={'all': [static(path) for path in self.css]} )
def media(self): media = super(OrderedFilteredSelectMultiple, self).media media.add_css({ 'all': [ static('ordered_m2m/widget.css'), ] }) media.add_js([ static('ordered_m2m/widget.js'), ]) return media
def _media(self): js = ["image_cropping/js/jquery.Jcrop.min.js", "image_cropping/image_cropping.js"] js = [admin_static.static(path) for path in js] if settings.IMAGE_CROPPING_JQUERY_URL: js.insert(0, settings.IMAGE_CROPPING_JQUERY_URL) css = ["image_cropping/css/jquery.Jcrop.min.css", "image_cropping/css/image_cropping.css"] css = {"all": [admin_static.static(path) for path in css]} return forms.Media(css=css, js=js)
def media(self): extra = '' if settings.DEBUG else '.min' js = ['jquery%s.js' % extra, 'jquery.init.js', 'inlines%s.js' % extra] if self.prepopulated_fields: js.extend(['urlify.js', 'prepopulate%s.js' % extra]) if self.filter_vertical or self.filter_horizontal: js.extend(['SelectBox.js', 'SelectFilter2.js']) return forms.Media( js=[static('admin/js/%s' % url) for url in js] + \ [static('js/jquery-ui-1.8.13.custom.min.js')], css=dict(all=[static('custom_admin/css/style.css')]))
def media(self): media_obj = super(SnippetAdmin, self).media if not USE_BOOTSTRAP_ACE: media_obj.add_css({ 'all': ( static('admin/css/forms.css'), static('admin/css/smartsnippets-extra.css'),) }) return media_obj
def profile_email_notifications(self, user): """ display a green/red icon if user accepts or not email notifications. if for some reason, the user don't have a UserProfile, it returns a (?) icon. """ if user.get_profile(): email_notifications = user.get_profile().email_notifications icon_url = static('admin/img/icon-%s.gif' % {True: 'yes', False: 'no', None: 'unknown'}[email_notifications]) return '<img src="{0}" alt="{1}" />'.format(icon_url, email_notifications) else: icon_url = static('admin/img/icon-icon-unknown.gif') return '<img src="{0}" alt="NO PROFILE" />no profile!' % icon_url
def media(self): try: if getattr(self.request, "daterange_filter_media_included"): return forms.Media() except AttributeError: setattr(self.request, "daterange_filter_media_included", True) js = ["calendar.js", "admin/DateTimeShortcuts.js"] css = ["widgets.css"] return forms.Media( js=[static("admin/js/%s" % path) for path in js], css={"all": [static("admin/css/%s" % path) for path in css]}, )
def media(self): try: if getattr(self.request, 'daterange_filter_media_included'): return forms.Media() except AttributeError: setattr(self.request, 'daterange_filter_media_included', True) js = ['calendar.js', 'admin/DateTimeShortcuts.js', ] css = ['widgets.css', ] return forms.Media( js=[static('admin/js/%s' % path) for path in js], css={'all': [static('admin/css/%s' % path) for path in css]} )
def media(self): """Media defined as a dynamic property instead of an inner class.""" extra = '' if settings.DEBUG else '.min' js = [ 'jquery%s.js' % extra, 'jquery.init.js', ] if USE_DJANGO_JQUERY: js = [static('admin/js/%s' % url) for url in js] elif JQUERY_URL: js = [JQUERY_URL] js = js + [static('smart-selects/admin/js/chainedfk.js')] return forms.Media(js=js)
def media(self): """Media defined as a dynamic property instead of an inner class.""" vendor = '' if django.VERSION < (1, 9, 0) else 'vendor/jquery/' extra = '' if settings.DEBUG else '.min' js = [ '%sjquery%s.js' % (vendor, extra), 'jquery.init.js', ] if USE_DJANGO_JQUERY: js = [static('admin/js/%s' % url) for url in js] elif JQUERY_URL: js = [JQUERY_URL] js = js + [static('smart-selects/admin/js/chainedm2m.js')] return forms.Media(js=js)
def get_date_published(self, obj): if obj.is_published: string = '{} <img src="{}/img/icon-yes.gif" alt="True">' else: string = '{} <img src="{}/img/icon-no.gif" alt="False">' date = formats.date_format(obj.date_published, 'SHORT_DATETIME_FORMAT') return format_html(string.format(date, static('admin')))
def media(self): js = ["admin/jalalijscalendar/jalali.js", "admin/jalalijscalendar/calendar.js", "admin/jalalijscalendar/calendar-setup.js", "admin/jalalijscalendar/calendar-fa.js", "admin/jDateTimeShortcuts.js"] # css = ["calendar-green.css"] return forms.Media(js=[static("admin/js/%s" % path) for path in js], css={'all': ('admin/css/calendar-green.css',)})
def get_tree_media(self): admin_media = super(DjangoMpttAdminMixin, self).media js = [ static('django_mptt_admin/jquery_namespace.js'), static('django_mptt_admin/django_mptt_admin.js'), ] css = dict( all=( static('django_mptt_admin/django_mptt_admin.css'), ) ) tree_media = Media(js=js, css=css) return admin_media + tree_media
def render(self, name, value, attrs=None): rel_to = self.rel.to if attrs is None: attrs = {} extra = [] if rel_to in self.admin_site._registry: # The related object is registered with the same AdminSite related_url = reverse('admin:%s_%s_changelist' % (rel_to._meta.app_label, rel_to._meta.module_name), current_app=self.admin_site.name) params = self.url_parameters() if params: url = '?' + '&'.join(['%s=%s' % (k, v) for k, v in params.items()]) else: url = '' if "class" not in attrs: attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript code looks for this hook. # TODO: "lookup_id_" is hard-coded here. This should instead use # the correct API to determine the ID dynamically. extra.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % (related_url, url, name)) extra.append('<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), _('Lookup'))) output = [super(ForeignKeyRawIdWidget, self).render(name, value, attrs)] + extra if value: output.append(self.label_for_value(value)) return mark_safe(''.join(output))
def payment_method_override(self, obj): payment_method = payment_method_mapping[obj.payment_method] if payment_method in payment_method_icon_mapping: icon_url = static(payment_method_icon_mapping[payment_method]) return '<img src="{0}" height="16px" /> {1}'.format(icon_url, payment_method) return payment_method
def admin_boolean_icon(val): ''' Admin icon wrapper. ''' icon_url = static('admin/img/icon-%s.gif' % {True: 'yes', False: 'no', None: 'unknown'}[val]) return mark_safe(u'<img src="%s" alt="%s" />' % (icon_url, val))
def render(self, name, value, attrs=None): rel_to = self.rel.to if attrs is None: attrs = {} extra = [] if rel_to in self.admin_site._registry: related_url = reverse( 'admin:%s_%s_changelist' % ( rel_to._meta.app_label, rel_to._meta.module_name ), current_app=self.admin_site.name, ) params = self.url_parameters() if params: params = [u'%s=%s' % (k, v) for k, v in params.items()] params = u'&'.join(params) url = u'?' + params else: url = u'' if 'class' not in attrs: attrs['class'] = 'vForeignKeyRawIdAdminField' extra.append( u'<a href="%s%s" class="related-lookup" id="lookup_id_%s"> ' % (related_url, url, name)) extra.append( u'<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), _('Lookup'))) output = [forms.TextInput.render(self, name, value, attrs)] + extra if value: output.append(self.label_for_value(value)) return mark_safe(u''.join(output))
def render(self, name, value, attrs=None): if attrs is None: attrs = {} extra = [] related_url = reverse('url-browser') params = {'url': value} if params: url = '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items()) else: url = '' if "class" not in attrs: attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript code looks for this hook. # TODO: "lookup_id_" is hard-coded here. This should instead use # the correct API to determine the ID dynamically. extra.append( '<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % (related_url, url, name) ) extra.append( '<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), _('Lookup')) ) output = [super(UrlWidget, self).render(name, value, attrs)] + extra return mark_safe(''.join(output))
def render(self, name, value, *args, **kwargs): rel_to = self.rel.to info = (rel_to._meta.app_label, rel_to._meta.object_name.lower()) self.widget.choices = self.choices output = [self.widget.render(name, value, *args, **kwargs)] if self.can_add_related: related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name) # TODO: "add_id_" is hard-coded here. This should instead use the # correct API to determine the ID dynamically. output.append( '<a href="%s" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % (related_url, name)) output.append( '<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), _('Add Another'))) return mark_safe(''.join(output))
def render(self, name, value, attrs=None): if attrs is None: attrs = {} if 'class' not in attrs: attrs['class'] = 'vGenericRawIdAdminField' output = [super(GenericRawIdWidget, self).render(name, value, attrs)] output.append( '<a id="lookup_id_%(name)s" class="gen-related-lookup" data-contenttypes="%(contenttypes)s" href="#">' % { 'name': name, 'contenttypes': self.content_types }) output.append( ' <img src="%s" width="16" height="16" alt="%s" />' % (static('admin/img/selector-search.gif'), _('Lookup'))) output.append('</a>') return mark_safe(u''.join(output))
def render(self, name, value, *args, **kwargs): rel_to = self.rel.to info = (rel_to._meta.app_label, rel_to._meta.object_name.lower()) self.widget.choices = self.choices output = [self.widget.render(name, value, *args, **kwargs)] if self.can_add_related: related_url = reverse( 'admin:%s_%s_add' % info, current_app=self.admin_site.name, ) output.append( u'<a href="%s" class="add-another" id="add_id_%s"> ' % (related_url, name)) output.append( u'<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), _('Add Another'))) return mark_safe(u''.join(output))
def render(self, name, value, attrs=None, choices=()): if value is None: value = '' final_attrs = self.build_attrs(attrs, name=name) output = [format_html('<select{0}>', flatatt(final_attrs))] options = self.render_options(choices, [value]) if options: output.append(options) output.append('</select>') if hasattr(self, 'd_class') and hasattr(self.d_class, 'get_add_url'): related_url = self.d_class.get_add_url() url_params = '?_to_field=id' output.append('<a href="%s%s" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % (related_url, url_params, name)) output.append('<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), ugettext('Add Another'))) return mark_safe('\n'.join(output))
def render(self, name, value, attrs=None): if value is None: value = '' final_attrs = self.build_attrs(self.attrs, extra_attrs=dict(attrs, name=name)) id_data = attrs.get('id', 'id_data') clippy_url = static('cascade/admin/clippy.svg') return format_html( '<textarea{0}>\r\n{1}</textarea> ' '<button data-clipboard-target="#{2}" type="button" title="{4}" class="clip-btn">' '<img src="{3}" alt="{4}">' '</button>\n' '<div class="status-line"><label></label><strong id="pasted_success">{5}</strong>' '<strong id="copied_success">{6}</strong></div>', flatatt(final_attrs), force_text(value), id_data, clippy_url, _("Copy to Clipboard"), _("Successfully pasted JSON data"), _("Successfully copied JSON data"))
def render(self, name, value, attrs=None, renderer=None): if DJANGO_1_10: output = list( super(ApplicationConfigSelect, self).render(name, value, attrs)) output.append(self._build_script(name, value, attrs)) related_url = '' output.append( '<a href="%s" class="add-another" id="add_%s" onclick="return showAddAnotherPopup(this);"> ' % (related_url, name)) output.append( '<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), _('Add Another'))) return mark_safe(''.join(output)) else: return super(ApplicationConfigSelect, self).render(name, value, attrs, renderer)
def render(self, name, value, attrs=None): to_opts = self.r_model._meta if attrs is None: attrs = {} extra = [] if 1:#self.r_model in self.admin_view.admin_site._registry: from xadmin.views.page import GridPage if issubclass(self.r_model, GridPage): related_url = self.r_model.get_page_url() else: related_url = self.admin_view.get_admin_url( '%s_%s_changelist' % (to_opts.app_label, to_opts.module_name)) params = self.url_parameters(name) if params: url = '?' + '&'.join(['%s=%s' % (k, v) for k, v in params.items()]) else: url = '' if "class" not in attrs: attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript code looks for this hook. if value: if attrs['class'] == 'vManyToManyRawIdAdminField': self.label_format = '<span style="display: inline-block;"><div class="obj-show " id="id_%s_show">%s</div></span>' extra.append( self.label_for_value(value, name=name) ) else: if attrs['class'] == 'vManyToManyRawIdAdminField': input_html = '<div class="obj-show " id="id_%s_show"></div>'%name else: input_html = '<input type="text" id="id_%s_show" class="form-control" value="" readonly="readonly" />'%name extra.append('<span style="display: inline-block;">%s</span>'%input_html) extra.append(' <a class="related-lookup" id="remove_id_%s" href="javascript://" onclick="return removeRelatedObject(this);" >x</a> '%name) extra.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % (related_url, url, name)) extra.append('<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), _('Lookup'))) attrs['type'] = 'hidden' output = [super(RawIdWidget, self).render(name, value, attrs)] + extra return mark_safe(''.join(output))
def media(self): js = [ "jquery.ui.datepicker.jalali/scripts/jquery-1.10.2.min.js", "jquery.ui.datepicker.jalali/scripts/jquery.ui.core.js", "jquery.ui.datepicker.jalali/scripts/jquery.ui.datepicker-cc.js", "jquery.ui.datepicker.jalali/scripts/calendar.js", "jquery.ui.datepicker.jalali/scripts/jquery.ui.datepicker-cc-fa.js", "main.js" ] css = { 'all': [ "admin/jquery.ui.datepicker.jalali/themes/base/jquery-ui.min.css", "admin/css/main.css" ] } return forms.Media(js=[static("admin/%s" % path) for path in js], css=css)
def test(self): """ admin_static.static points to the collectstatic version (as django.contrib.collectstatic is in INSTALLED_APPS). """ msg = ('{% load admin_static %} is deprecated in favor of ' '{% load static %}.') old_url = staticfiles_storage.base_url staticfiles_storage.base_url = '/test/' try: with warnings.catch_warnings(record=True) as recorded: warnings.simplefilter('always') url = static('path') self.assertEqual(url, '/test/path') self.assertEqual(len(recorded), 1) self.assertIs(recorded[0].category, RemovedInDjango30Warning) self.assertEqual(str(recorded[0].message), msg) finally: staticfiles_storage.base_url = old_url
def render(self, name, value, attrs=None, choices=()): output = [super(ApplicationConfigSelect, self).render(name, value, attrs, choices)] output.append('<script>\n') output.append('var apphooks_configuration = {\n') for application, cms_app in self.app_configs.items(): output.append("'%s': [%s]," % (application, ",".join(["['%s', '%s']" % (config.pk, force_text(config)) for config in cms_app.get_configs()]))) output.append('\n};\n') output.append('var apphooks_configuration_url = {\n') for application, cms_app in self.app_configs.items(): output.append("'%s': '%s'," % (application, cms_app.get_config_add_url())) output.append('\n};\n') output.append('var apphooks_configuration_value = \'%s\';\n' % value) output.append('</script>') related_url = '' output.append('<a href="%s" class="add-another" id="add_%s" onclick="return showAddAnotherPopup(this);"> ' % (related_url, name)) output.append('<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), _('Add Another'))) return mark_safe(''.join(output))
def render(self, name, value, *args, **kwargs): from django.contrib.admin.views.main import TO_FIELD_VAR rel_to = self.rel.to info = (rel_to._meta.app_label, rel_to._meta.model_name) self.widget.choices = self.choices output = [self.widget.render(name, value, *args, **kwargs)] if self.can_add_related: related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name) url_params = '?%s=%s' % (TO_FIELD_VAR, self.rel.get_related_field().name) # TODO: "add_id_" is hard-coded here. This should instead use the # correct API to determine the ID dynamically. output.append( '<a href="%s%s" class="add-another" id="add_id_%s" onclick="return showAddAnotherPopup(this);"> ' % (related_url, url_params, name)) output.append( '<img src="%s" width="10" height="10" alt="%s"/></a>' % (static('admin/img/icon_addlink.gif'), _('Add Another'))) return mark_safe(''.join(output))
def render(self, name, value, attrs=None, choices=()): if attrs is None: attrs = {} attrs['class'] = 'selectfilter' if self.is_stacked: attrs['class'] += 'stacked' output = [ super(FilteredSelectMultiple, self).render(name, value, attrs, choices) ] output.append( '<script type="text/javascript">addEvent(window, "load", function(e) {' ) # TODO: "id_" is hard-coded here. This should instead use the correct # API to determine the ID dynamically. output.append( 'SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % (name, self.verbose_name.replace('"', '\\"'), int( self.is_stacked), static('admin/'))) return mark_safe(''.join(output))
def display_message(self, log): edit = '<a href="%(url)s"><img src="%(img)s"></img></a>' % { 'url': reverse('admin:admin_logentry_change', args=(log.pk, )), 'img': static('admin/img/icon-changelink.svg'), } if log.is_addition(): return _('Added "%(link)s". %(edit)s') % { 'link': self.content_object_link(log), 'edit': edit } elif log.is_change(): return _('Changed "%(link)s" - %(changes)s %(edit)s') % { 'link': self.content_object_link(log), 'changes': log.get_change_message(), 'edit': edit, } elif log.is_deletion(): return _('Deleted "%(object)s." %(edit)s') % { 'object': log.object_repr, 'edit': edit, }
def render(self, name, value, attrs=None): url = urlresolvers.reverse(self.site.name + ":fb_browse") if value is None: value = "" if value != "" and not isinstance(value, FileObject): value = FileObject(value, site=self.site) final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) final_attrs['search_icon'] = static('filebrowser/img/filebrowser_icon_show.gif') final_attrs['url'] = url final_attrs['directory'] = self.directory final_attrs['extensions'] = self.extensions final_attrs['format'] = self.format final_attrs['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL final_attrs['data_attrs'] = {k: v for k, v in final_attrs.items() if k.startswith('data-')} filebrowser_site = self.site if value != "": try: final_attrs['directory'] = os.path.split(value.original.path_relative_directory)[0] except: pass return render_to_string("filebrowser/custom_field.html", locals())
def render(self, name, value, attrs=None, choices=()): """ we need to fire SelectFilter.init whenever the html is re-written after AJAX call from selection form """ if attrs is None: attrs = {} attrs['class'] = 'selectfilter' if self.is_stacked: attrs['class'] += 'stacked' output = [ super(FilteredSelectMultiple, self).render(name, value, attrs, choices) ] output.append('<script type="text/javascript">') # import pdb; pdb.set_trace() output.append('function setupTagOrderSelectChange() {\n') output.append( '$("select[name=\'master_ui_edit-ui_mappings_tags\']").change(function(){\n' ) output.append( '$(\'#uimap_tag_order_field\').load(\'./update_tag_ui_order #tag_order_inner\', ' '{tags: $.map($(this).find(\'option\'), function(option) {return option.value;}), ' ' mui:$(\'#id_master_ui_select-masterui\').val() }, rewriteSortedMultiCheckbox)\n' ) output.append('});\n') output.append('};\n') output.append('function rewriteFilteredSelect(){\n') output.append('SelectFilter.init("id_%s", "%s", %s, "%s"); \n' % (name, self.verbose_name.replace( '"', '\\"'), int(self.is_stacked), static('admin/'))) # force Webkit redraw output.append('$(\'#div_id_%s .selector\').hide().show(0);\n' % name) output.append('setupTagOrderSelectChange();};\n') output.append('addEvent(window, "load", function(e) {\n') output.append('rewriteFilteredSelect()});</script>\n') return mark_safe(''.join(output))
def render(self, name, value, attrs=None): rel_to = self.rel.to if attrs is None: attrs = {} extra = [] if rel_to in self.admin_site._registry: # The related object is registered with the same AdminSite related_url = reverse( 'admin:%s_%s_changelist' % ( rel_to._meta.app_label, rel_to._meta.model_name, ), current_app=self.admin_site.name, ) params = self.url_parameters() if params: url = '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items()) else: url = '' if "class" not in attrs: attrs[ 'class'] = 'vForeignKeyRawIdAdminField' # The JavaScript code looks for this hook. # TODO: "lookup_id_" is hard-coded here. This should instead use # the correct API to determine the ID dynamically. extra.append( '<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' % (related_url, url, name)) extra.append( '<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), _('Lookup'))) output = [ super(ForeignKeyRawIdWidget, self).render(name, value, attrs) ] + extra if value: output.append(self.label_for_value(value)) return mark_safe(''.join(output))
def media(self): # taken from django.contrib.admin.options ModelAdmin extra = '' if settings.DEBUG else '.min' # if VERSION <= (1, 8): if StrictVersion(get_version()) < StrictVersion('1.9'): js = [ 'core.js', 'admin/RelatedObjectLookups.js', 'jquery%s.js' % extra, 'jquery.init.js', ] else: js = [ 'core.js', 'vendor/jquery/jquery%s.js' % extra, 'jquery.init.js', 'admin/RelatedObjectLookups.js', 'actions%s.js' % extra, 'urlify.js', 'prepopulate%s.js' % extra, 'vendor/xregexp/xregexp%s.js' % extra, ] return forms.Media(js=[static('admin/js/%s' % url) for url in js])
def render(self, name, value, attrs): urls = {} for m in admin.site._registry: urls[model_path(m)] = reverse('admin:%s_%s_changelist' % (m._meta.app_label, m._meta.module_name)) urls = json.dumps(urls) safe_name = name.replace('-', '_') extra = [] extra.append(u'''<script type="text/javascript">var urls = %s; function popup_%s(trigger) { var name = trigger.id.replace(/^lookup_/, ''); name = id_to_windowname(name); var chosen_model = django.jQuery(trigger).siblings('select').val(); if (chosen_model in urls) { var href = urls[chosen_model] + '?pop=1' var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); win.focus(); } return false; } </script>\n''' % (urls, safe_name)) extra.append(u'<a href="" class="related-lookup" id="lookup_id_%s" onclick="return popup_%s(this);"> ' % (name, safe_name)) extra.append(u'<img src="%s" width="16" height="16" alt="%s" /></a>' % (static('admin/img/selector-search.gif'), 'Lookup')) output = [super(GenericFKInput, self).render(name, value, attrs)] + extra return mark_safe(u''.join(output))
def render(self, name, value, attrs=None): """ Overrides the base ``render`` method to use only the specific proxy model which filters ``cyclos.User``s by 'business'. """ rel_to = self.rel_to if attrs is None: attrs = {} extra = [] if rel_to in self.admin_site._registry: # The related object is registered with the same AdminSite hello = 'admin:{0}_{1}_changelist'.format(rel_to._meta.app_label, rel_to._meta.model_name) related_url = reverse(hello, current_app=self.admin_site.name) params = self.url_parameters() if params: url = '?' + '&'.join( ['{0}={1}'.format(k, v) for k, v in params.items()]) else: url = '' if "class" not in attrs: attrs['class'] = 'vForeignKeyRawIdAdminField' extra.append( '<a href="{0}{1}" class="related-lookup" id="lookup_id_{2}" ' 'onclick="return showRelatedObjectLookupPopup(this);"> ' ''.format(related_url, url, name)) extra.append('<img src="{0}" width="16" height="16" alt="{1}" />' '</a>'.format(static('admin/img/selector-search.gif'), _('Lookup'))) output = [ super(ForeignKeyRawIdWidget, self).render(name, value, attrs) ] + extra if value: output.append(self.label_for_value(value)) return mark_safe(''.join(output))
def media(self): js = ["core.js", "SelectBox.js", "SelectFilter2.js"] return forms.Media(js=[static("admin/js/%s" % path) for path in js])
class Media: js = [ 'admin/js/jquery.init.js', static('django-freeradius/js/strategy-switcher.js') ] css = {'all': (static('django-freeradius/css/radiusbatch.css'), )}
class Media: js = [static('django-freeradius/js/strategy-switcher.js')] css = {'all': (static('django-freeradius/css/radiusbatch.css'), )}
def media(self): extra = '' if settings.DEBUG else '.min' js = ['core.js', 'jquery%s.js' % extra, 'jquery.init.js'] return forms.Media(js=[static('admin/js/%s' % url) for url in js])
class Media: js = [static("js/FilteredSelect.js")] css = {'all': [static("css/filtered_select.css")]}
def static_jquery(): if DJANGO_VERSION < (1, 9): return static("admin/js/jquery.min.js") return static("admin/js/vendor/jquery/jquery.min.js")
def static_search_icon(): if DJANGO_VERSION < (1, 9): return static("admin/img/icon_searchbox.png") return static("admin/img/search.svg")
def media(self): media = super(BulkModelAdmin, self).media media.add_js([static('bulk_admin/js/bulk.js')]) return media
def media(self): js = ["calendar.js", "admin/DateTimeShortcuts.js"] return forms.Media(js=[static("admin/js/%s" % path) for path in js])
def media(self): js = [static('fsm/js/fsm.js')] css = {'all': (static('fsm/css/fsm.css'), )} return Media(js=js, css=css)
def _boolean_icon(field_val): icon_url = static('admin/img/icon-%s.gif' % {True: 'yes', False: 'no', None: 'unknown'}[field_val]) return format_html('<img src="{0}" alt="{1}" />', icon_url, field_val)