Upgrade django-pipeline to fix conflict with sentry-sdk.
[wolnelektury.git] / src / picture / tasks.py
1 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
3 #
4 import json
5 from traceback import print_exc
6
7 from celery.task import task
8 from django.core.files.base import ContentFile
9 from django.template.loader import render_to_string
10
11
12 @task
13 def generate_picture_html(picture_id):
14     import picture.models
15     pic = picture.models.Picture.objects.get(pk=picture_id)
16     areas_json = json.loads(pic.areas_json)
17
18     html_text = render_to_string('picture/picture_info.html', {
19                 'things': areas_json['things'],
20                 'themes': areas_json['themes'],
21                 })
22     pic.html_file.save("%s.html" % pic.slug, ContentFile(html_text))
23
24
25 @task
26 def index_picture(picture_id, picture_info=None, **kwargs):
27     from picture.models import Picture
28     try:
29         return Picture.objects.get(id=picture_id).search_index(picture_info, **kwargs)
30     except Exception as e:
31         print("Exception during index: %s" % e)
32         print_exc()
33         raise e