Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### in signals.py ##################################
- ####################################################
- def project_post_generate_template(sender, **kwargs):
- ### get object ###
- project = kwargs['instance']
- generate_project_cartridge(project)
- def generate_project_cartridge(project):
- ### Create a simple HttpRequest
- request = HttpRequest()
- request.is_secure = lambda : True
- ### doesn't pass through a django local middleware, so we need force the language choice
- language = translation.get_language_from_request(request)
- translation.activate(language)
- for coworker in project.get_coworkers():
- request.user = coworker
- c = render_to_string('mon/projects/cartridges/project_cartridge_dash.html', {"project": project}, RequestContext(request)).encode("utf-8")
- f = open(os.path.join(settings.CACHE_TEMPLATE_PATH, 'projects/dashboard/cache_%s_%s_%s.html' % (project.id, request.user.id, 'fr')), 'w')
- f.write(c)
- f.close()
- print "Generate project %s cartridge for %s done" % (project.name, coworker.get_full_name())
- ### in inclusion_tag.py (template tag) #############
- ####################################################
- @register.inclusion_tag('mon/projects/cartridges/project_cartridge_dash.html', takes_context = True)
- def show_project_cartridge_dash(context, project, object):
- return {
- 'request' : context['request'],
- 'project' : project,
- 'MEDIA_IMG_URL' : context['MEDIA_IMG_URL'],
- }
- class CachedProjectDashboard(Node):
- def __init__(self, project):
- self.project = Variable(project)
- def render(self, context):
- try:
- project = self.project.resolve(context)
- try:
- request = context['request']
- t = template.loader.get_template('cache/projects/dashboard/cache_%s_%s_%s.html' %(project.id, request.user.id, 'fr'))
- return t.render(Context({}))
- except TemplateDoesNotExist:
- print "Chargement du template cache/projects/dashboard/cache_%s_%s_%s.html impossible" % (project.id, request.user.id, 'fr')
- params = show_project_cartridge_dash(context, project)
- c = render_to_string('mon/projects/cartridges/project_cartridge_dash.html', params)
- return c
- except VariableDoesNotExist:
- pass
- return ''
- @register.tag
- def show_cached_project_dashboard(parser, token):
- try:
- bits = token.split_contents()[1:]
- return CachedProjectDashboard(bits[0])
- except IndexError:
- raise TemplateSyntaxError, "Wrong argument assignement ! Expected :project"
- ### in template *.html #############
- ####################################
- <!-- old call-->
- {# show_project_cartridge_dash project #}
- <!-- new call-->
- {% show_cached_project_dashboard project %}
Add Comment
Please, Sign In to add comment