From 69b332800a472211b5da70426171fa429702a273 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Tue, 29 Aug 2023 11:38:54 +0200 Subject: [PATCH] Fixes for woblink. --- src/catalogue/admin.py | 14 ++++++++++++++ src/catalogue/models.py | 6 ++++-- src/depot/publishers/woblink.py | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) 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: -- 2.20.1