diff --git a/README.md b/README.md index d46e91300b5d056e5a422bde4f38b38873134323..3ff8450786ea1540201d18f8f1504f5dd448f129 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,16 @@ Kalendář se stáhne při uložení modelu obsahujícího `CalendarMixin`. Appka přidává management command `update_callendars`, který stahuje a updatuje kalendáře. Je třeba ho pravidelně volat na pozadí (přes CRON). +### Celery (Import z Jekyllu) +Import z Jekyll GitHub repozitářů pirátských webů je řešen asynchroně přes Celery. +Celery využívá Redis, který může běžet např. lokálně, typicky 6379: +V envu pak je pak potřeba mít nastavený Celery broker: + +``` +CELERY_BROKER_URL=redis://localhost:6379/6 +CELERY_RESULT_BACKEND=redis://localhost:6379/6 +``` + ### Stránka 404 Pokud je třeba vlastní 404 pro web, stačí do kořenové `xxxHomePage` webu diff --git a/district/jekyll_import.py b/district/jekyll_import.py index e60c3325609f01e7150c2db118d82ede4f71d5a6..d07d94d71faa959fca967d9dc2b9f7510bc10f42 100644 --- a/district/jekyll_import.py +++ b/district/jekyll_import.py @@ -13,13 +13,14 @@ from urllib.error import HTTPError import markdown.serializers import yaml -from django.contrib.messages import ERROR, INFO, SUCCESS, WARNING +from django.contrib.messages import INFO, SUCCESS, WARNING from django.core.files.images import ImageFile from django.utils import timezone from markdown import Markdown from markdown.extensions import Extension from markdown.inlinepatterns import InlineProcessor from wagtail.contrib.redirects.models import Redirect +from wagtail.core.models.collections import Collection from wagtail.core.rich_text import RichText from wagtail.images.models import Image from yaml.scanner import ScannerError diff --git a/district/management/commands/district_import_jekyll.py b/district/management/commands/district_import_jekyll.py index ddfd464ab64c201d6edac161baeecfe64f115168..bd4fa44c81f39aef7249c15e7d8358cec9dffdaa 100644 --- a/district/management/commands/district_import_jekyll.py +++ b/district/management/commands/district_import_jekyll.py @@ -1,7 +1,6 @@ from django.core.management.base import BaseCommand -from wagtail.core.models.collections import Collection -from ...jekyll_import import perform_import +from ...jekyll_import import JekyllArticleImporter class Command(BaseCommand): @@ -34,7 +33,18 @@ class Command(BaseCommand): type=bool, help="Zda je o testovací běh.", ) + parser.add_argument( + "--use-git", + default=True, + type=bool, + help="Zda je o testovací běh.", + ) def handle(self, *args, **options): - pass - # perform_import() # TODO + return JekyllArticleImporter( + article_parent_page_id=options["clanky_id"], + collection_id=options["kolekce_id"], + url=options["path"], + dry_run=options["dry_run"], + use_git=options["use_git"], + ).perform_import() diff --git a/majak/settings/base.py b/majak/settings/base.py index 630c9337a620104fb0adeeb4275fad1c19c9457c..14e6a7ac57fd8cdf8cabeb1c4b2d3b88d879bf34 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -192,8 +192,8 @@ CACHES["renditions"]["TIMEOUT"] = 60 * 60 * 24 # CELERY # ------------------------------------------------------------------------------ -CELERY_BROKER_URL = "redis://localhost:6379/6" # TODO set from env -CELERY_RESULT_BACKEND = "redis://localhost:6379/6" +CELERY_BROKER_URL = env.str("CELERY_BROKER_URL") +CELERY_RESULT_BACKEND = env.str("CELERY_RESULT_BACKEND") CELERY_ACCEPT_CONTENT = ["application/json"] CELERY_RESULT_SERIALIZER = "json" CELERY_TASK_SERIALIZER = "json"