Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package org.devgateway.ocds.persistence.mongo;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
Expand All @@ -12,7 +14,9 @@
import org.devgateway.ocds.persistence.mongo.merge.MergeStrategy;

import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;


Expand Down Expand Up @@ -222,4 +226,51 @@ public boolean equals(Object other) {
).isEquals();
}


/**
* see https://github.com/open-contracting/ocds_bid_extension/blob/master/codelists/bidStatus.csv
*/
public enum Status {

invited("invited"),
cancelled("pending"),
valid("valid"),
disqualified("disqualified"),
withdrawn("withdrawn");

private final String value;
private static final Map<String, Detail.Status> CONSTANTS = new HashMap<String, Detail.Status>();

static {
for (Detail.Status c : values()) {
CONSTANTS.put(c.value, c);
}
}

Status(String value) {
this.value = value;
}

@Override
public String toString() {
return this.value;
}

@JsonValue
public String value() {
return this.value;
}

@JsonCreator
public static Detail.Status fromValue(String value) {
Detail.Status constant = CONSTANTS.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.devgateway.ocds.persistence.mongo.Award;
import org.devgateway.ocds.persistence.mongo.FlaggedRelease;
import org.devgateway.ocds.persistence.mongo.Tender;
import org.springframework.util.ObjectUtils;

/**
* @author mpostelnicu
Expand Down Expand Up @@ -51,6 +52,12 @@ private FlaggedReleasePredicates() {
&& Tender.ProcurementMethod.limited.equals(p.getTender().getProcurementMethod())
);

public static final NamedPredicate<FlaggedRelease> BIDS =
new NamedPredicate<>(
"Needs to have at least one bid",
p -> !ObjectUtils.isEmpty(p.getBids()) && !ObjectUtils.isEmpty(p.getBids().getDetails())
);

public static final NamedPredicate<FlaggedRelease> ACTIVE_AWARD_WITH_DATE =
new NamedPredicate<>(
"Needs to have at least one active award with date",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class ReleaseFlagI002Processor extends AbstractFlaggedReleaseFlagProcesso
protected void setPredicates() {
preconditionsPredicates = Collections.synchronizedList(Arrays.asList(
FlaggedReleasePredicates.ACTIVE_AWARD,
FlaggedReleasePredicates.BIDS,
FlaggedReleasePredicates.UNSUCCESSFUL_AWARD,
FlaggedReleasePredicates.ELECTRONIC_SUBMISSION,
FlaggedReleasePredicates.OPEN_PROCUREMENT_METHOD
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package org.devgateway.ocds.web.flags.release;

import com.google.common.collect.ImmutableMap;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.devgateway.ocds.persistence.mongo.FlaggedRelease;
import org.devgateway.ocds.persistence.mongo.flags.AbstractFlaggedReleaseFlagProcessor;
import org.devgateway.ocds.persistence.mongo.flags.Flag;
import org.devgateway.ocds.persistence.mongo.flags.FlagType;
import org.devgateway.ocds.persistence.mongo.flags.preconditions.FlaggedReleasePredicates;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
* @author mpostelnicu
* <p>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
package org.devgateway.ocds.web.flags.release;


import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.annotation.PostConstruct;
import org.devgateway.ocds.persistence.mongo.FlaggedRelease;
import org.devgateway.ocds.persistence.mongo.flags.AbstractFlaggedReleaseFlagProcessor;
import org.devgateway.ocds.persistence.mongo.flags.Flag;
import org.devgateway.ocds.persistence.mongo.flags.FlagType;
import org.devgateway.ocds.persistence.mongo.flags.preconditions.FlaggedReleasePredicates;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
* @author mpostelnicu
* <p>
Expand All @@ -28,10 +29,10 @@ protected void setFlag(Flag flag, FlaggedRelease flaggable) {

@Override
protected Boolean calculateFlag(FlaggedRelease flaggable, StringBuffer rationale) {
long countAwards = flaggable.getAwards().size();
long countBids = flaggable.getBids().getDetails().size();

rationale.append("Number of bids: ").append(countAwards);
return countAwards == 1;
rationale.append("Number of bids: ").append(countBids);
return countBids == 1;
}

@Override
Expand All @@ -44,6 +45,7 @@ protected Set<FlagType> flagTypes() {
protected void setPredicates() {
preconditionsPredicates = Collections.synchronizedList(
Arrays.asList(FlaggedReleasePredicates.ACTIVE_AWARD,
FlaggedReleasePredicates.BIDS,
FlaggedReleasePredicates.OPEN_PROCUREMENT_METHOD,
FlaggedReleasePredicates.ELECTRONIC_SUBMISSION
));
Expand Down