Generated: Wed 2013-03-13 10:33 CET
Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/plugins/link/cms_plugins.py
Stats: 0 executed, 36 missed, 7 excluded, 25 ignored
from django.utils.translation import ugettext_lazy as _from django.contrib.sites.models import Sitefrom django.conf import settingsfrom cms.plugin_pool import plugin_poolfrom cms.plugin_base import CMSPluginBasefrom cms.plugins.link.forms import LinkFormfrom models import Linkclass LinkPlugin(CMSPluginBase): model = Link form = LinkForm name = _("Link") render_template = "cms/plugins/link.html" text_enabled = True def render(self, context, instance, placeholder): if instance.mailto: link = u"mailto:%s" % instance.mailto elif instance.url: link = instance.url elif instance.page_link: link = instance.page_link.get_absolute_url() else: link = "" context.update({ 'name': instance.name, 'link': link, 'target':instance.target, 'placeholder': placeholder, 'object': instance }) return context def get_form(self, request, obj=None, **kwargs): Form = super(LinkPlugin, self).get_form(request, obj, **kwargs) # this is bit tricky, since i don't wont override add_view and # change_view class FakeForm(object): def __init__(self, Form, site): self.Form = Form self.site = site # base fields are required to be in this fake class, this may # do some troubles, with new versions of django, if there will # be something more required self.base_fields = Form.base_fields def __call__(self, *args, **kwargs): # instanciate the form on call form = self.Form(*args, **kwargs) # tell form we are on this site form.for_site(self.site) return form # TODO: Make sure this works if self.cms_plugin_instance.page and self.cms_plugin_instance.page.site: site = self.cms_plugin_instance.page.site elif self.page and self.page.site: site = self.page.site else: # this might NOT give the result you expect site = Site.objects.get_current() return FakeForm(Form, site) def icon_src(self, instance): return settings.STATIC_URL + u"cms/images/plugins/link.png"plugin_pool.register_plugin(LinkPlugin)