From 16fc15cc043c1a50d582a0434e47276dea660f79 Mon Sep 17 00:00:00 2001 From: Arne Stabenau Date: Thu, 9 Jan 2025 13:45:57 +0200 Subject: [PATCH 1/3] Added boolean attributes allowComments, allowRating, hasPublicResults None are enforced by the backend, so the frontend has to play along --- app/controllers/CampaignController.java | 12 ++++++++++ app/model/Campaign.java | 29 ++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/app/controllers/CampaignController.java b/app/controllers/CampaignController.java index 11345107..d6a6edec 100644 --- a/app/controllers/CampaignController.java +++ b/app/controllers/CampaignController.java @@ -197,6 +197,18 @@ public static Result editCampaign(String id) throws ClassNotFoundException, Json campaign.setIsPublic(json.get("isPublic").asBoolean()); } + if( json.has( "allowRating" )) { + campaign.setAllowRating( json.get( "allowRating").asBoolean()); + } + if( json.has( "allowComments" )) { + campaign.setAllowComments( json.get( "allowComments").asBoolean()); + } + if( json.has( "hasPublicResults" )) { + campaign.setHasPublicResults( json.get( "hasPublicResults").asBoolean()); + } + + + if (json.has("vocabularyMapping")) { campaign.setVocabularyMapping(newCampaign.getVocabularyMapping()); } diff --git a/app/model/Campaign.java b/app/model/Campaign.java index 312a0cfe..0ddd4a95 100644 --- a/app/model/Campaign.java +++ b/app/model/Campaign.java @@ -407,7 +407,11 @@ public void setLongDescription(String longDescription) { private Literal disclaimer; private boolean isPublic; - + + private boolean hasPublicResults; + private boolean allowComments; + private boolean allowRating; + @JsonSerialize(using = Serializer.ObjectIdArraySerializer.class) // @JsonDeserialize(using = Deserializer.ObjectIdArraySerializer.class) private Set creators = new HashSet(); @@ -546,6 +550,29 @@ public void setIsPublic(boolean aPublic) { isPublic = aPublic; } + public boolean getAllowComments() { + return this.allowComments; + } + + public void setAllowComments( boolean allowComments ) { + this.allowComments = allowComments; + } + + public boolean getHasPublicResults( ) { + return this.hasPublicResults; + } + + public void setHasPublicResults( boolean hasPublicResults ) { + this.hasPublicResults = hasPublicResults; + } + + public boolean getAllowRating() { + return this.allowRating; + } + public void setAllowRating( boolean allowRating ) { + this.allowRating = allowRating; + } + public Boolean getActive() { Date today = new Date(); return ( (today.compareTo(this.startDate)>0) && (today.compareTo(this.endDate)<0) ); From 5673cfe4c64a2b4cc0c817d2f0164583ba5432c1 Mon Sep 17 00:00:00 2001 From: Arne Stabenau Date: Thu, 9 Jan 2025 14:53:42 +0200 Subject: [PATCH 2/3] Change allowComments allowRating to hideComments, hideRating --- app/controllers/CampaignController.java | 8 ++++---- app/model/Campaign.java | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/controllers/CampaignController.java b/app/controllers/CampaignController.java index d6a6edec..3f29256c 100644 --- a/app/controllers/CampaignController.java +++ b/app/controllers/CampaignController.java @@ -197,11 +197,11 @@ public static Result editCampaign(String id) throws ClassNotFoundException, Json campaign.setIsPublic(json.get("isPublic").asBoolean()); } - if( json.has( "allowRating" )) { - campaign.setAllowRating( json.get( "allowRating").asBoolean()); + if( json.has( "hideRating" )) { + campaign.setHideRating( json.get( "hideRating").asBoolean()); } - if( json.has( "allowComments" )) { - campaign.setAllowComments( json.get( "allowComments").asBoolean()); + if( json.has( "hideComments" )) { + campaign.setHideComments( json.get( "hideComments").asBoolean()); } if( json.has( "hasPublicResults" )) { campaign.setHasPublicResults( json.get( "hasPublicResults").asBoolean()); diff --git a/app/model/Campaign.java b/app/model/Campaign.java index 0ddd4a95..57640ebe 100644 --- a/app/model/Campaign.java +++ b/app/model/Campaign.java @@ -409,8 +409,8 @@ public void setLongDescription(String longDescription) { private boolean isPublic; private boolean hasPublicResults; - private boolean allowComments; - private boolean allowRating; + private boolean hideComments; + private boolean hideRating; @JsonSerialize(using = Serializer.ObjectIdArraySerializer.class) // @JsonDeserialize(using = Deserializer.ObjectIdArraySerializer.class) @@ -550,12 +550,12 @@ public void setIsPublic(boolean aPublic) { isPublic = aPublic; } - public boolean getAllowComments() { - return this.allowComments; + public boolean getHideComments() { + return this.hideComments; } - public void setAllowComments( boolean allowComments ) { - this.allowComments = allowComments; + public void setHideComments( boolean hideComments ) { + this.hideComments = hideComments; } public boolean getHasPublicResults( ) { @@ -566,11 +566,11 @@ public void setHasPublicResults( boolean hasPublicResults ) { this.hasPublicResults = hasPublicResults; } - public boolean getAllowRating() { - return this.allowRating; + public boolean getHideRating() { + return this.hideRating; } - public void setAllowRating( boolean allowRating ) { - this.allowRating = allowRating; + public void setHideRating( boolean hideRating ) { + this.hideRating = hideRating; } public Boolean getActive() { From eaea552d4865dfdfe0ddef3ca8c42332043155a2 Mon Sep 17 00:00:00 2001 From: Leonidas Mavrotas Date: Tue, 25 Mar 2025 13:03:02 +0200 Subject: [PATCH 3/3] [CH-277] Try out different criteria for filtering items based on annotations. Instead of looking at the annotators which is broken, check on the annotationIds array --- app/db/RecordResourceDAO.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/db/RecordResourceDAO.java b/app/db/RecordResourceDAO.java index 0279b95a..37867b37 100644 --- a/app/db/RecordResourceDAO.java +++ b/app/db/RecordResourceDAO.java @@ -298,8 +298,8 @@ public List getByCollectionNoContribution(List recordIds = (List) CollectionUtils.collect(collectedResources, new BeanToPropertyValueTransformer("target.recordId")); q.field("_id").in(recordIds); - q.or(q.criteria("administrative.annotators." + userId).doesNotExist(), - q.criteria("administrative.annotators." + userId).lessThan(1)); + q.or(q.criteria("annotationIds").doesNotExist(), + q.criteria("annotationIds").sizeEq(0)); return this.find(q).asList(); } catch (Exception e) { return new ArrayList(); @@ -312,8 +312,8 @@ public List getByCollectionFilterOnlyContributedItems(List recordIds = (List) CollectionUtils.collect(collectedResources, new BeanToPropertyValueTransformer("target.recordId")); q.field("_id").in(recordIds); - q.or(q.criteria("administrative.annotators." + userId).exists(), - q.criteria("administrative.annotators." + userId).greaterThan(0)); + q.and(q.criteria("annotationIds").exists(), + q.criteria("annotationIds").not().sizeEq(0)); return this.find(q).asList(); } catch (Exception e) { return new ArrayList();