X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ae60b2a3949e96357477cc04f90fd0873cee8a92..eb383b976ed875888b261bf5901ee484aa2dcf8f:/src/picture/tasks.py?ds=sidebyside diff --git a/src/picture/tasks.py b/src/picture/tasks.py index 1958d2881..ff9aa1357 100644 --- a/src/picture/tasks.py +++ b/src/picture/tasks.py @@ -1,19 +1,33 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from celery.task import task +import json +from traceback import print_exc + +from celery import shared_task from django.core.files.base import ContentFile from django.template.loader import render_to_string -@task +@shared_task def generate_picture_html(picture_id): import picture.models pic = picture.models.Picture.objects.get(pk=picture_id) + areas_json = json.loads(pic.areas_json) - html_text = unicode(render_to_string('picture/picture_info.html', { - 'things': pic.areas_json['things'], - 'themes': pic.areas_json['themes'], - })) + html_text = render_to_string('picture/picture_info.html', { + 'things': areas_json['things'], + 'themes': areas_json['themes'], + }) pic.html_file.save("%s.html" % pic.slug, ContentFile(html_text)) + + +@shared_task +def index_picture(picture_id, picture_info=None, **kwargs): + from picture.models import Picture + try: + return Picture.objects.get(id=picture_id).search_index(picture_info, **kwargs) + except Exception as e: + print("Exception during index: %s" % e) + print_exc() + raise e