| 123456789101112131415161718192021222324252627282930313233343536373839 |
- # coding=utf-8
- from django.template import loader
- from xadmin.plugins.utils import get_context_dict
- from xadmin.sites import site
- from xadmin.views import BaseAdminPlugin, ListAdminView
- REFRESH_VAR = '_refresh'
- class RefreshPlugin(BaseAdminPlugin):
- refresh_times = []
- # Media
- def get_media(self, media):
- if self.refresh_times and self.request.GET.get(REFRESH_VAR):
- media = media + self.vendor('xadmin.plugin.refresh.js')
- return media
- # Block Views
- def block_top_toolbar(self, context, nodes):
- if self.refresh_times:
- current_refresh = self.request.GET.get(REFRESH_VAR)
- context.update({
- 'has_refresh': bool(current_refresh),
- 'clean_refresh_url': self.admin_view.get_query_string(remove=(REFRESH_VAR,)),
- 'current_refresh': current_refresh,
- 'refresh_times': [{
- 'time': r,
- 'url': self.admin_view.get_query_string({REFRESH_VAR: r}),
- 'selected': str(r) == current_refresh,
- } for r in self.refresh_times],
- })
- nodes.append(loader.render_to_string('xadmin/blocks/model_list.top_toolbar.refresh.html',
- get_context_dict(context)))
- site.register_plugin(RefreshPlugin, ListAdminView)
|