diff --git a/calendar_utils/management/commands/update_callendars.py b/calendar_utils/management/commands/update_callendars.py index d1c51b56670280b919d5779555ea884d46eb6acf..1d73aa0e64d09886d86192f44b7f63a156013a26 100644 --- a/calendar_utils/management/commands/update_callendars.py +++ b/calendar_utils/management/commands/update_callendars.py @@ -32,6 +32,7 @@ class Command(BaseCommand): self.stdout.write("Updating calendars...") for cal in Calendar.objects.all(): self.stdout.write(f"\n@ {cal.id} | {cal.url}") + try: cal.update_source() self.stdout.write("+ ok") diff --git a/district/forms.py b/district/forms.py index 26d60fb837a73c083366bcd4cd43ca6622505733..fb2974ad69dfab4118700df61415e3b68e00953f 100644 --- a/district/forms.py +++ b/district/forms.py @@ -84,3 +84,7 @@ class DistrictArticlesPageForm(SharedArticlesPageForm, JekyllImportForm): .order_by("name") .distinct("name") ) + else: + self.fields["shared_tags"].queryset = DistrictArticleTag.objects.filter(id=-1) + self.fields["displayed_tags"].queryset = DistrictArticleTag.objects.filter(id=-1) + self.fields["displayed_shared_tags"].queryset = SharedTag.objects.filter(id=-1) diff --git a/elections/forms.py b/elections/forms.py index e2bd6ed79d3e26df8cc4b8c3e3fb64f91d0a7493..246b89d8bfffb0fb3e9b2e723e28be57db6b2966 100644 --- a/elections/forms.py +++ b/elections/forms.py @@ -45,9 +45,21 @@ class ElectionsArticlesPageForm(SharedArticlesPageForm, JekyllImportForm): .values_list("tag_id", flat=True) .distinct() ) + valid_shared_tag_ids = ( + self.instance.shared_tags.values_list("id", flat=True).distinct().all() + ) self.fields["displayed_tags"].queryset = ( ElectionsArticleTag.objects.filter(id__in=valid_tag_ids) .order_by("tag__name") .distinct("tag__name") ) + self.fields["displayed_shared_tags"].queryset = ( + SharedTag.objects.filter(id__in=valid_shared_tag_ids) + .order_by("name") + .distinct("name") + ) + else: + self.fields["shared_tags"].queryset = ElectionsArticleTag.objects.filter(id=-1) + self.fields["displayed_tags"].queryset = ElectionsArticleTag.objects.filter(id=-1) + self.fields["displayed_shared_tags"].queryset = SharedTag.objects.filter(id=-1) diff --git a/main/forms.py b/main/forms.py index d6af8e4210df4180a95c79c6874c600b37e62141..5917307f58d4e26d90eea9c4be5999995ea16fd2 100644 --- a/main/forms.py +++ b/main/forms.py @@ -45,9 +45,21 @@ class MainArticlesPageForm(SharedArticlesPageForm, JekyllImportForm): .values_list("tag_id", flat=True) .distinct() ) + valid_shared_tag_ids = ( + self.instance.shared_tags.values_list("id", flat=True).distinct().all() + ) self.fields["displayed_tags"].queryset = ( MainArticleTag.objects.filter(id__in=valid_tag_ids) .order_by("tag__name") .distinct("tag__name") ) + self.fields["displayed_shared_tags"].queryset = ( + SharedTag.objects.filter(id__in=valid_shared_tag_ids) + .order_by("name") + .distinct("name") + ) + else: + self.fields["shared_tags"].queryset = MainArticleTag.objects.filter(id=-1) + self.fields["displayed_tags"].queryset = MainArticleTag.objects.filter(id=-1) + self.fields["displayed_shared_tags"].queryset = SharedTag.objects.filter(id=-1) \ No newline at end of file diff --git a/shared/forms.py b/shared/forms.py index 776b1b61f43688c75b1f7d067a569e6521338388..3347d90630bf608fe987c081b9650dbc7e99ef86 100644 --- a/shared/forms.py +++ b/shared/forms.py @@ -77,15 +77,18 @@ class TagModelChoiceField(ModelMultipleChoiceField): return obj.tag.name +from taggit.models import Tag + + class ArticlesPageForm(ClusterForm): displayed_tags = TagModelChoiceField( - queryset=None, + queryset=Tag.objects.filter(id=-1), required=False, label="Z tohoto webu", widget=CheckboxSelectMultiple, ) displayed_shared_tags = ModelMultipleChoiceField( - queryset=None, + queryset=Tag.objects.filter(id=-1), required=False, label="Sdílecí", help_text=( @@ -96,7 +99,7 @@ class ArticlesPageForm(ClusterForm): ) shared_tags = ModelMultipleChoiceField( - queryset=None, + queryset=Tag.objects.filter(id=-1), required=False, label="Štítky pro sdílení mezi weby", help_text="Články z ostatních webů se štítky, které vybereš, se ukážou na tomto webu.", diff --git a/uniweb/forms.py b/uniweb/forms.py index efcb9e249004be233372f16bca86b5467f7d3de0..2c00933f4b2beeb0ae4ed913d1dfcef3f42a9225 100644 --- a/uniweb/forms.py +++ b/uniweb/forms.py @@ -1,5 +1,6 @@ from wagtail.admin.forms import WagtailAdminPageForm +from django.forms.models import ModelChoiceIterator from shared.forms import ArticlesPageForm as SharedArticlesPageForm @@ -24,13 +25,10 @@ class UniwebHomePageAdminForm(WagtailAdminPageForm): class UniwebArticlesPageForm(SharedArticlesPageForm, WagtailAdminPageForm): def __init__(self, *args, **kwargs): from shared.models import SharedTag - from .models import UniwebArticleTag super().__init__(*args, **kwargs) - self.fields["shared_tags"].queryset = SharedTag.objects.order_by("name") - if self.instance.pk: valid_tag_ids = ( UniwebArticleTag.objects.filter( @@ -39,9 +37,21 @@ class UniwebArticlesPageForm(SharedArticlesPageForm, WagtailAdminPageForm): .values_list("id", flat=True) .distinct() ) + valid_shared_tag_ids = ( + self.instance.shared_tags.values_list("id", flat=True).distinct().all() + ) self.fields["displayed_tags"].queryset = ( UniwebArticleTag.objects.filter(id__in=valid_tag_ids) .order_by("tag__name") .distinct("tag__name") ) + self.fields["displayed_shared_tags"].queryset = ( + SharedTag.objects.filter(id__in=valid_shared_tag_ids) + .order_by("name") + .distinct("name") + ) + else: + self.fields["shared_tags"].queryset = UniwebArticleTag.objects.filter(id=-1) + self.fields["displayed_tags"].queryset = UniwebArticleTag.objects.filter(id=-1) + self.fields["displayed_shared_tags"].queryset = SharedTag.objects.filter(id=-1) \ No newline at end of file