https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=36437

Michał <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #163976|0                           |1
        is obsolete|                            |

--- Comment #7 from Michał <[email protected]> ---
Comment on attachment 163976
  --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=163976
0001-Bug-36437-Add-publication-year-facet-to-Elasticsearc.patch

>From a9ae44f2adff90c234f3b65e439c04c5da4f8dfa Mon Sep 17 00:00:00 2001
>From: MichaÅ Kula <[email protected]>
>Date: Wed, 27 Mar 2024 09:00:43 +0100
>Subject: [PATCH] Bug 36437: Add publication year facet to Elasticsearch
>
>---
> Koha/SearchEngine/Elasticsearch.pm            |  2 +-
> .../Elasticsearch/QueryBuilder.pm             | 17 ++++++++-------
> Koha/SearchEngine/Elasticsearch/Search.pm     | 21 ++++++++++---------
> .../searchengine/elasticsearch/mappings.yaml  | 21 ++++++++++---------
> .../intranet-tmpl/prog/en/includes/facets.inc |  3 +++
> .../searchengine/elasticsearch/mappings.tt    |  3 ++-
> .../bootstrap/en/includes/opac-facets.inc     |  2 ++
> 7 files changed, 39 insertions(+), 30 deletions(-)
>
>diff --git a/Koha/SearchEngine/Elasticsearch.pm 
>b/Koha/SearchEngine/Elasticsearch.pm
>index 3f26cbc027..b905f7726f 100644
>--- a/Koha/SearchEngine/Elasticsearch.pm
>+++ b/Koha/SearchEngine/Elasticsearch.pm
>@@ -1404,7 +1404,7 @@ sub get_facetable_fields {
> 
>     # These should correspond to the ES field names, as opposed to the CCL
>     # things that zebra uses.
>-    my @search_field_names = qw( author itype location su-geo title-series 
>subject ccode holdingbranch homebranch ln );
>+    my @search_field_names = qw( author itype location su-geo title-series 
>subject ccode holdingbranch homebranch ln date-of-publication );
>     my @faceted_fields = Koha::SearchFields->search(
>         { name => { -in => \@search_field_names }, facet_order => { '!=' => 
> undef } }, { order_by => ['facet_order'] }
>     )->as_list;
>diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm 
>b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm
>index 35ab4b7f91..758c8409ec 100644
>--- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm
>+++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm
>@@ -226,14 +226,15 @@ sub build_query {
>     # things that Koha can use.
>     my $size = C4::Context->preference('FacetMaxCount');
>     $res->{aggregations} = {
>-        author         => { terms => { field => "author__facet" , size => 
>$size } },
>-        subject        => { terms => { field => "subject__facet", size => 
>$size } },
>-        itype          => { terms => { field => "itype__facet", size => 
>$size} },
>-        location       => { terms => { field => "location__facet", size => 
>$size } },
>-        'su-geo'       => { terms => { field => "su-geo__facet", size => 
>$size} },
>-        'title-series' => { terms => { field => "title-series__facet", size 
>=> $size } },
>-        ccode          => { terms => { field => "ccode__facet", size => $size 
>} },
>-        ln             => { terms => { field => "ln__facet", size => $size } 
>},
>+        author                => { terms => { field => "author__facet" , size 
>=> $size } },
>+        subject               => { terms => { field => "subject__facet", size 
>=> $size } },
>+        itype                 => { terms => { field => "itype__facet", size 
>=> $size} },
>+        location              => { terms => { field => "location__facet", 
>size => $size } },
>+        'su-geo'              => { terms => { field => "su-geo__facet", size 
>=> $size} },
>+        'title-series'        => { terms => { field => "title-series__facet", 
>size => $size } },
>+        ccode                 => { terms => { field => "ccode__facet", size 
>=> $size } },
>+        ln                    => { terms => { field => "ln__facet", size => 
>$size } },
>+        'date-of-publication' => { terms => { field => 
>"date-of-publication__facet", size => $size } },
>     };
> 
>     my $display_library_facets = 
> C4::Context->preference('DisplayLibraryFacets');
>diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm 
>b/Koha/SearchEngine/Elasticsearch/Search.pm
>index 933b52f79d..4c1d73a9b1 100644
>--- a/Koha/SearchEngine/Elasticsearch/Search.pm
>+++ b/Koha/SearchEngine/Elasticsearch/Search.pm
>@@ -444,16 +444,17 @@ sub _convert_facets {
>     # things that zebra uses.
>     my %type_to_label;
>     my %label = (
>-        author         => 'Authors',
>-        itype          => 'ItemTypes',
>-        location       => 'Location',
>-        'su-geo'       => 'Places',
>-        'title-series' => 'Series',
>-        subject        => 'Topics',
>-        ccode          => 'CollectionCodes',
>-        holdingbranch  => 'HoldingLibrary',
>-        homebranch     => 'HomeLibrary',
>-        ln             => 'Language',
>+        author                => 'Authors',
>+        itype                 => 'ItemTypes',
>+        location              => 'Location',
>+        'su-geo'              => 'Places',
>+        'title-series'        => 'Series',
>+        subject               => 'Topics',
>+        ccode                 => 'CollectionCodes',
>+        holdingbranch         => 'HoldingLibrary',
>+        homebranch            => 'HomeLibrary',
>+        ln                    => 'Language',
>+        'date-of-publication' => 'PubDate',
>     );
>     my @facetable_fields =
>       Koha::SearchEngine::Elasticsearch->get_facetable_fields;
>diff --git a/admin/searchengine/elasticsearch/mappings.yaml 
>b/admin/searchengine/elasticsearch/mappings.yaml
>index f9f9a042c5..1e1bca315b 100644
>--- a/admin/searchengine/elasticsearch/mappings.yaml
>+++ b/admin/searchengine/elasticsearch/mappings.yaml
>@@ -1280,7 +1280,7 @@ biblios:
>     staff_client: 1
>     type: ''
>   ccode:
>-    facet_order: 7
>+    facet_order: 8
>     label: collection-code
>     mandatory: ~
>     mappings:
>@@ -1656,15 +1656,16 @@ biblios:
>     staff_client: 1
>     type: date
>   date-of-publication:
>+    facet_order: 3
>     label: date-of-publication
>     mandatory: ~
>     mappings:
>-    - facet: ''
>+    - facet: 1
>       marc_field: 008_/7-10
>       marc_type: marc21
>       sort: 1
>       suggestible: ''
>-    - facet: ''
>+    - facet: 1
>       marc_field: 100a_/9-12
>       marc_type: unimarc
>       sort: 1
>@@ -1856,7 +1857,7 @@ biblios:
>     staff_client: 1
>     type: ''
>   holdingbranch:
>-    facet_order: 8
>+    facet_order: 9
>     label: holdinglibrary
>     mandatory: ~
>     mappings:
>@@ -1874,7 +1875,7 @@ biblios:
>     staff_client: 1
>     type: string
>   homebranch:
>-    facet_order: 9
>+    facet_order: 10
>     label: homelibrary
>     mandatory: ~
>     mappings:
>@@ -2484,7 +2485,7 @@ biblios:
>     staff_client: 1
>     type: ''
>   ln:
>-    facet_order: 10
>+    facet_order: 11
>     label: ln
>     mandatory: ~
>     mappings:
>@@ -2565,7 +2566,7 @@ biblios:
>     staff_client: 1
>     type: number
>   location:
>-    facet_order: 3
>+    facet_order: 4
>     label: location
>     mandatory: ~
>     mappings:
>@@ -3351,7 +3352,7 @@ biblios:
>     staff_client: 1
>     type: ''
>   su-geo:
>-    facet_order: 4
>+    facet_order: 5
>     label: su-geo
>     mandatory: ~
>     mappings:
>@@ -3369,7 +3370,7 @@ biblios:
>     staff_client: 1
>     type: string
>   subject:
>-    facet_order: 6
>+    facet_order: 7
>     label: subject
>     mandatory: ~
>     mappings:
>@@ -4131,7 +4132,7 @@ biblios:
>     staff_client: 1
>     type: ''
>   title-series:
>-    facet_order: 5
>+    facet_order: 6
>     label: title-series
>     mandatory: ~
>     mappings:
>diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc 
>b/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc
>index 2fcce67e7d..fbbdb52ae8 100644
>--- a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc
>+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc
>@@ -84,6 +84,9 @@
>                             [% IF facets_loo.type_label_Language %]
>                                 <span id="facet-languages">Languages</span>
>                             [% END %]
>+                            [% IF facets_loo.type_label_PubDate %]
>+                                <span id="facet-pubdates">Publication 
>years</span>
>+                            [% END %]
>                             <ul>
>                                 [% SET url = 
> "/cgi-bin/koha/catalogue/search.pl?" _ query_cgi _ limit_cgi %]
>                                 [% IF ( sort_by ) %]
>diff --git 
>a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt
> 
>b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt
>index 625afa4998..233ea98126 100644
>--- 
>a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt
>+++ 
>b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt
>@@ -482,7 +482,8 @@ a.add, a.delete {
>                                                     [% CASE 'holdingbranch' 
> %]<span>Holding libraries</span>
>                                                     [% CASE 'homebranch' 
> %]<span>Home libraries</span>
>                                                     [% CASE 'ln' 
> %]<span>Language</span>
>-                                                    [% CASE %][% f | html %]
>+                                                    [% CASE 
>'date-of-publication' %]<span>Publication year</span>
>+                                                    [% CASE %][% f.name | 
>html %]
>                                                     [% END %]
>                                                 </td>
>                                                 <td>
>diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-facets.inc 
>b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-facets.inc
>index 8a62c4cd93..3b4dbc810f 100644
>--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-facets.inc
>+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-facets.inc
>@@ -51,6 +51,7 @@
>             [% more_less_labels.HomeLibrary     = { more = t("Show more home 
> libraries"),    less = t("Show fewer home libraries") }    %]
>             [% more_less_labels.HoldingLibrary  = { more = t("Show more 
> holding libraries"), less = t("Show fewer holding libraries") } %]
>             [% more_less_labels.Location        = { more = t("Show more 
> locations"),         less = t("Show fewer locations") }         %]
>+            [% more_less_labels.PubDate         = { more = t("Show more 
>publication years"), less = t("Show fewer publication years") } %]
>             [% FOREACH facets_loo IN facets_loop %]
>                 [% IF facets_loo.facets.size > 0 %]
>                     <li id="[% facets_loo.type_id | html %]">
>@@ -62,6 +63,7 @@
>                         [% IF facets_loo.type_label_ItemTypes %]<h3 
> id="facet-itemtypes">Item types</h3>[% END %]
>                         [% IF facets_loo.type_label_CollectionCodes %]<h3 
> id="facet-collections">Collections</h3>[% END %]
>                         [% IF facets_loo.type_label_Language %]<h3 
> id="facet-languages">Languages</h3>[% END %]
>+                        [% IF facets_loo.type_label_PubDate %]<h3 
>id="facet-pubdates">Publication years</h3>[% END %]
>                         [% UNLESS singleBranchMode %]
>                             [% IF ( facets_loo.type_label_HomeLibrary ) %]<h3 
> id="facet-home-libraries">Home libraries</h3>[% END %]
>                             [% IF ( facets_loo.type_label_HoldingLibrary ) 
> %]<h3 id="facet-holding-libraries">Holding libraries</h3>[% END %]
>-- 
>2.42.0.windows.1
>

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to