text: # -*- coding: utf-8 -*-
  from __future__ import unicode_literals
  
  from django.template.loader import select_template
  from django.templatetags.static import static
  from django.utils.translation import ugettext_lazy as _
  
  from cms.plugin_pool import plugin_pool
  from cms.plugin_base import CMSPluginBase
  
  from .conf import settings
  from .forms import FilerFileForm
  from .models import FilerFile
  
  
  class FilerFilePlugin(CMSPluginBase):
      form = FilerFileForm
      module = 'Filer'
      model = FilerFile
      name = _("File *** DON’T USE ME ***")
      TEMPLATE_NAME = 'cmsplugin_filer_file/plugins/file/%s.html'
      render_template = TEMPLATE_NAME % 'default'
      text_enabled = True
  
      fieldsets = (
          (None, {
              'fields': [
                  'title', 'file', 'target_blank'
              ]
          }),
          (_('Advanced'), {
              'classes': ['collapse', ],
              'fields': [
                  'link_attributes',
              ]
          })
      )
  
      if settings.CMSPLUGIN_FILER_FILE_STYLE_CHOICES:
          fieldsets[0][1]['fields'].append('style')
  
      def render(self, context, instance, placeholder):
          context['object'] = instance
          return super(FilerFilePlugin, self).render(context, instance, placeholder)
  
      def get_render_template(self, context, instance, placeholder):
          template = select_template((
              'cmsplugin_filer_file/plugins/file.html',  # backwards compatibility. deprecated!
              self.TEMPLATE_NAME % instance.style,
              self.TEMPLATE_NAME % 'default',
          ))
          return template
  
      def icon_src(self, instance):
          file_icon = instance.get_icon_url()
  
          if file_icon:
              return file_icon
          return static("filer/icons/file_%sx%s.png" % (32, 32,))
  
  plugin_pool.register_plugin(FilerFilePlugin)
  