X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b2d342589a7889a3b096e7192453d53bd28eed7d..a5d97184b87b72f8fb964c862af0f54f3ef788c1:/src/picture/tasks.py diff --git a/src/picture/tasks.py b/src/picture/tasks.py index 1958d2881..e815f190c 100644 --- a/src/picture/tasks.py +++ b/src/picture/tasks.py @@ -1,7 +1,9 @@ -# -*- 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. # +import json +from traceback import print_exc + from celery.task import task from django.core.files.base import ContentFile from django.template.loader import render_to_string @@ -11,9 +13,21 @@ from django.template.loader import render_to_string 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)) + + +@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