From: Radek Czajka Date: Tue, 29 Aug 2023 09:38:54 +0000 (+0200) Subject: Fixes for woblink. X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/69b332800a472211b5da70426171fa429702a273?ds=inline;hp=2245baeed5c7fb97da2aeb5441aadf26c280fee9 Fixes for woblink. --- diff --git a/src/catalogue/admin.py b/src/catalogue/admin.py index 43ae8664..af083691 100644 --- a/src/catalogue/admin.py +++ b/src/catalogue/admin.py @@ -73,6 +73,20 @@ class WoblinkCatalogueWidget(forms.Select): ) return attrs + def optgroups(self, name, value, attrs=None): + """ Add synthetic option for keeping the current value. """ + return [(None, [ + self.create_option( + name, + v, + '(bez zmian)', + selected=True, + index=index, + attrs=attrs, + ) + for index, v in enumerate(value) + ], 0)] + class WoblinkAuthorWidget(WoblinkCatalogueWidget): category = 'author' diff --git a/src/catalogue/models.py b/src/catalogue/models.py index fb42ba89..9074fa82 100644 --- a/src/catalogue/models.py +++ b/src/catalogue/models.py @@ -128,8 +128,10 @@ class Author(WikidataModel): if len(names) == 2: return cls.objects.filter(last_name=names[0], first_name=names[1]).first() else: - return cls.objects.filter(last_name=names[0], first_name='').first() or \ - cls.objects.filter(first_name=names[0], last_name='').first() + return cls.objects.filter(last_name_pl=names[0], first_name_pl='').first() or \ + cls.objects.filter(first_name_pl=names[0], last_name_pl='').first() or \ + cls.objects.filter(first_name_pl=literal, last_name_pl='').first() or \ + cls.objects.filter(first_name_pl=literal, last_name_pl=None).first() @property def name(self): diff --git a/src/depot/publishers/woblink.py b/src/depot/publishers/woblink.py index e98ec585..90ee91aa 100644 --- a/src/depot/publishers/woblink.py +++ b/src/depot/publishers/woblink.py @@ -223,7 +223,7 @@ class Woblink(BasePublisher): thema_codes.extend( Audience.objects.filter(code__in=meta.audiences).exclude( - thema=None).values_list('thema', flat=True) + thema='').values_list('thema', flat=True) ) if not thema_codes: