From f9bd061001606270db63913403686716a7f08455 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Wed, 12 Apr 2023 15:22:50 +0000 Subject: [PATCH] Bug 33507: WIP This is a work in progress, have not been able to get the 'not equals' query to work, its documented as a comment in the code --- Koha/Schema/Result/ErmAgreement.pm | 7 +++++++ api/v1/swagger/definitions/erm_agreement.yaml | 5 +++++ api/v1/swagger/paths/erm_agreements.yaml | 1 + .../prog/js/vue/components/ERM/AgreementsList.vue | 3 +++ 4 files changed, 16 insertions(+) diff --git a/Koha/Schema/Result/ErmAgreement.pm b/Koha/Schema/Result/ErmAgreement.pm index b2b97e4f3ee..2d92bf95360 100644 --- a/Koha/Schema/Result/ErmAgreement.pm +++ b/Koha/Schema/Result/ErmAgreement.pm @@ -277,6 +277,13 @@ __PACKAGE__->has_many( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "agreement_packages", + "Koha::Schema::Result::ErmEholdingsPackagesAgreement", + { "foreign.agreement_id" => "self.agreement_id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + __PACKAGE__->add_columns( '+is_perpetual' => { is_boolean => 1 } ); diff --git a/api/v1/swagger/definitions/erm_agreement.yaml b/api/v1/swagger/definitions/erm_agreement.yaml index e8fc871d349..ed0b22b55a1 100644 --- a/api/v1/swagger/definitions/erm_agreement.yaml +++ b/api/v1/swagger/definitions/erm_agreement.yaml @@ -54,6 +54,11 @@ properties: description: agreement relationships items: $ref: erm_agreement_relationship.yaml + agreement_packages: + type: array + description: agreement packages + items: + $ref: erm_eholdings_package_agreement.yaml agreement_licenses: type: array description: agreement licenses diff --git a/api/v1/swagger/paths/erm_agreements.yaml b/api/v1/swagger/paths/erm_agreements.yaml index 289bc36a130..394d8ddbaa2 100644 --- a/api/v1/swagger/paths/erm_agreements.yaml +++ b/api/v1/swagger/paths/erm_agreements.yaml @@ -68,6 +68,7 @@ type: string enum: - user_roles + - agreement_packages - vendor collectionFormat: csv - $ref: "../swagger.yaml#/parameters/match" diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsList.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsList.vue index ba81c2b2cd9..a69af1d4dcf 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsList.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsList.vue @@ -221,6 +221,9 @@ export default { ) this.$router.push(new_route) } + //TODO: If embedded, apply default filter for agreements not related to currently shown package + // tried, but failed: + // curl -u koha:koha --request GET 'http://localhost:8081/api/v1/erm/agreements' --header "x-koha-embed: agreement_packages" --header "Content-Type: application/json" --data-raw '{ "agreement_packages.package_id": { "!=": 1 } }' if (this.filters.by_expired) { if (!this.filters.max_expiration_date) this.filters.max_expiration_date = new Date() -- 2.30.2