Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit 11b1184

Browse files
authored
Merge pull request #217 from skyhit/enable_assign_members_and_fix_double_payments_issues
enable assigning members for active task and fix double payments issues Closes #214 Closes #215
2 parents 965f8bf + b26164b commit 11b1184

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

services/contest_service_facade/src/java/main/com/topcoder/service/facade/contest/ejb/ContestServiceFacadeBean.java

+40-2
Original file line numberDiff line numberDiff line change
@@ -9113,7 +9113,20 @@ public void closeSoftwareContest(TCSubject tcSubject, long projectId, long winne
91139113
if (phase.getPhaseStatus().getId() != PhaseStatus.OPEN.getId()) {
91149114
needToUpdate = true;
91159115
phase.setPhaseStatus(PhaseStatus.OPEN);
9116-
break;
9116+
}
9117+
} else if (PROJECT_ITERATIVE_REVIEW_PHASE_NAME.equals(phase.getPhaseType().getName()) ||
9118+
PROJECT_REVIEW_PHASE_NAME.equals(phase.getPhaseType().getName())){
9119+
//check whether iterative/review open and winner has been choosen
9120+
//which mean challenge has been close
9121+
if (phase.getPhaseStatus().getId() == PhaseStatus.OPEN.getId()) {
9122+
Submission[] submissions = uploadManager.getProjectSubmissions(contest.getId());
9123+
for (Submission submission : submissions){
9124+
if(submission.getPlacement() != null && submission.getPlacement() == 1L){
9125+
logger.error("Challenge has been closed");
9126+
throw new ContestServiceException("Winner for this challenge has been selected or " +
9127+
"challenge has been closed before");
9128+
}
9129+
}
91179130
}
91189131
}
91199132
}
@@ -9139,7 +9152,7 @@ public void closeSoftwareContest(TCSubject tcSubject, long projectId, long winne
91399152
Date currentDate = new Date();
91409153
//length 1 hour
91419154
long length = 60 * MINUTE_IN_MILIS;
9142-
//submision start 3h before
9155+
//reg start 3h before
91439156
Date regStartDate = new Date(currentDate.getTime() - 180 * MINUTE_IN_MILIS);
91449157
//submision start 2h before
91459158
Date submissionStartDate = new Date(currentDate.getTime() - 120 * MINUTE_IN_MILIS);
@@ -9231,8 +9244,33 @@ public void cancelSoftwareContestByUser(TCSubject tcSubject, long projectId) thr
92319244
logger.debug("Entering #cancelSoftwareContestByUser");
92329245
try {
92339246
Project contest = projectServices.getProject(projectId);
9247+
com.topcoder.project.phases.Project projectPhases = projectServices.getPhases(contest.getId());
9248+
com.topcoder.project.phases.Phase[] phases = projectPhases.getAllPhases();
9249+
9250+
//check whether iterative/review open and winner has been choosen
9251+
//which mean challenge has been close before
9252+
for (com.topcoder.project.phases.Phase phase : phases) {
9253+
if (PROJECT_ITERATIVE_REVIEW_PHASE_NAME.equals(phase.getPhaseType().getName()) ||
9254+
PROJECT_REVIEW_PHASE_NAME.equals(phase.getPhaseType().getName())){
9255+
//check whether iterative/review open and winner has been choosen
9256+
//which mean challenge has been close
9257+
if (phase.getPhaseStatus().getId() == PhaseStatus.OPEN.getId()) {
9258+
Submission[] submissions = uploadManager.getProjectSubmissions(contest.getId());
9259+
for (Submission submission : submissions){
9260+
if(submission.getPlacement() != null && submission.getPlacement() == 1L){
9261+
logger.error("Challenge has been closed");
9262+
throw new ContestServiceException("Can't cancel this challenge because winner " +
9263+
"for this challenge has been selected or challenge has been closed before");
9264+
}
9265+
}
9266+
}
9267+
}
9268+
}
9269+
92349270
contest.setProjectStatus(ProjectStatus.CANCELLED_CLIENT_REQUEST);
92359271
projectManager.updateProject(contest, "cancel-client request", String.valueOf(tcSubject.getUserId()));
9272+
} catch (ContestServiceException e) {
9273+
throw e;
92369274
} catch (Exception e) {
92379275
logger.error("Failed to update challenge");
92389276
throw new ContestServiceException("Failed to update challenge", e);

src/web/scripts/launch/contestDetailSoftware.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,6 @@ function populateTypeSection() {
12661266
}
12671267
if (mainWidget.softwareCompetition.projectHeader.projectStatus.name == ACTIVE_STATUS) {
12681268
$("#privateProject").attr("disabled", "true");
1269-
$("#preRegisterUsers").attr("disabled", "true");
12701269
}
12711270
} else {
12721271
$(".privateProjectRow").hide();
@@ -3354,7 +3353,8 @@ function doCloseContest(winnerId) {
33543353
handleJsonResult(jsonResult,
33553354
function(result) {
33563355
showConfirmation("Success", "The system will close the challenge shortly.", "OK", function () {
3357-
location.reload();
3356+
$(".privateCmd").hide();
3357+
closeModal();
33583358
});
33593359
},
33603360
function(errorMessage) {

0 commit comments

Comments
 (0)