def discover_plugins(self): if self.discovered: return from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache() load('cms_plugins') self.discovered = True
def test_render_placeholder_cache(self): """ Regression test for #4223 Assert that placeholder cache is cleared correctly when a plugin is saved """ invalidate_cms_page_cache() ex = Example1(char_1="one", char_2="two", char_3="tree", char_4="four") ex.save() ph1 = ex.placeholder ### # add the test plugin ## test_plugin = add_plugin(ph1, u"TextPlugin", u"en", body="Some text") test_plugin.save() # asserting initial text context = SekizaiContext() context["request"] = self.get_request() text = render_placeholder(ph1, context) self.assertEqual(text, "Some text") # deleting local plugin cache del ph1._plugins_cache test_plugin.body = "Other text" test_plugin.save() # plugin text has changed, so the placeholder rendering text = render_placeholder(ph1, context) self.assertEqual(text, "Other text")
def test_render_placeholder_cache(self): """ Regression test for #4223 Assert that placeholder cache is cleared correctly when a plugin is saved """ invalidate_cms_page_cache() ex = Example1(char_1='one', char_2='two', char_3='tree', char_4='four') ex.save() ph1 = ex.placeholder ### # add the test plugin ## test_plugin = add_plugin(ph1, u"TextPlugin", u"en", body="Some text") test_plugin.save() request = self.get_request() content_renderer = self.get_content_renderer(request) # asserting initial text context = SekizaiContext() context['request'] = self.get_request() text = content_renderer.render_placeholder(ph1, context) self.assertEqual(text, "Some text") # deleting local plugin cache del ph1._plugins_cache test_plugin.body = 'Other text' test_plugin.save() # plugin text has changed, so the placeholder rendering text = content_renderer.render_placeholder(ph1, context) self.assertEqual(text, "Other text")
def save(self, *args, **kwargs): super(Redirection, self).save(*args, **kwargs) invalidate_cms_page_cache() cache.set('redir:%s:%s:%s' % (self.site_id, self.source, self.enabled), self, get_cms_setting('CACHE_DURATIONS')['menus'], version=_get_cache_version())
def apphook_post_delete_title_checker(instance, **kwargs): """ Check if this was an apphook """ from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache() if instance.page.application_urls: request_finished.connect(trigger_restart, dispatch_uid=DISPATCH_UID)
def apphook_post_page_checker(page): old_page = page.old_page if (old_page and ( old_page.application_urls != page.application_urls or old_page.application_namespace != page.application_namespace)) or ( not old_page and page.application_urls): from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache() request_finished.connect(trigger_restart, dispatch_uid=DISPATCH_UID)
def apphook_post_page_checker(page): old_page = page.old_page if (old_page and (old_page.application_urls != page.application_urls or old_page.application_namespace != page.application_namespace)) or ( not old_page and page.application_urls): from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache() request_finished.connect(trigger_restart, dispatch_uid=DISPATCH_UID)
def discover_plugins(self): if self.discovered: return from cms.cache import invalidate_cms_page_cache if get_cms_setting("PAGE_CACHE"): invalidate_cms_page_cache() autodiscover_modules('cms_plugins') self.discovered = True
def test_render_placeholderfield_cache_in_custom_model(self): """ Regression test for #6912 Assert that placeholder of a placeholderfield in custom model has its cache cleared correctly when mark_as_dirty is called in the admin """ invalidate_cms_page_cache() # Create an instance of a custom model containing a placeholderfield ex = Example1(char_1="one", char_2="two", char_3="tree", char_4="four") ex.save() ph1 = ex.placeholder # Add a first plugin test_plugin = add_plugin(ph1, "TextPlugin", "en", body="Some text") test_plugin.save() # Create a first request using render_placeholder to ensure that the content is equal to the first plugin content request = self.get_request() content_renderer = self.get_content_renderer(request) context = SekizaiContext() context["request"] = self.get_request() text = content_renderer.render_placeholder(ph1, context, use_cache=True) self.assertEqual(text, "Some text") # Add a second plugin in the placeholder test_plugin = add_plugin(ph1, "TextPlugin", "en", body="Some other text") test_plugin.save() # Clear plugins cache to ensure that cms.utils.plugins.get_plugins() will refetch the plugins del ph1._plugins_cache # Create a second request using render_placeholder to ensure that the content is still equal to the first plugin content as cache was not cleared yet request = self.get_request() content_renderer = self.get_content_renderer(request) context = SekizaiContext() context["request"] = self.get_request() text = content_renderer.render_placeholder(ph1, context, use_cache=True) self.assertEqual(text, "Some text") # Mark placeholder as dirty as it is done in cms.admin.placeholderadmin file ph1.mark_as_dirty("en", clear_cache=False) # Create a last request to ensure that rendered content contains the two plugins content request = self.get_request() content_renderer = self.get_content_renderer(request) context = SekizaiContext() context["request"] = self.get_request() text = content_renderer.render_placeholder(ph1, context, use_cache=True) self.assertEqual(text, "Some textSome other text")
def save(self, *args, **kwargs): # Update the search index if self.update_search_on_save: self.search_data = self.get_search_data() # Ensure there is an owner. if self.app_config.create_authors and self.author is None: self.author = Person.objects.get_or_create( user=self.owner, defaults={ 'name': u' '.join((self.owner.first_name, self.owner.last_name)) })[0] # make the page cache obsolete from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache() # slug would be generated by TranslatedAutoSlugifyMixin super(Article, self).save(*args, **kwargs)
def test_render_placeholder_cache(self): """ Regression test for #4223 Assert that placeholder cache is cleared correctly when a plugin is saved """ invalidate_cms_page_cache() ex = Example1( char_1='one', char_2='two', char_3='tree', char_4='four' ) ex.save() ph1 = ex.placeholder ### # add the test plugin ## test_plugin = add_plugin(ph1, u"TextPlugin", u"en", body="Some text") test_plugin.save() request = self.get_request() content_renderer = self.get_content_renderer(request) # asserting initial text context = SekizaiContext() context['cms_content_renderer'] = content_renderer context['request'] = self.get_request() text = content_renderer.render_placeholder(ph1, context) self.assertEqual(text, "Some text") # deleting local plugin cache del ph1._plugins_cache test_plugin.body = 'Other text' test_plugin.save() # plugin text has changed, so the placeholder rendering text = content_renderer.render_placeholder(ph1, context) self.assertEqual(text, "Other text")
def delete(self, *args, **kwargs): super(PageTemplate, self).delete(*args, **kwargs) invalidate_cms_page_cache()
def reset(self): 'Empty the template cache.' invalidate_cms_page_cache() self.cached_templates.clear() super(Loader, self).reset()
def post_delete_page(instance, **kwargs): update_home(instance, **kwargs) apphook_post_delete_page_checker(instance) from cms.cache import invalidate_cms_page_cache invalidate_cms_page_cache()
def delete(self, *args, **kwargs): super(Redirection, self).delete(*args, **kwargs) invalidate_cms_page_cache()