DOMjudge / domjudge

DOMjudge programming contest jury system
https://www.domjudge.org
GNU General Public License v2.0
720 stars 254 forks source link

ICPC team import fails with duplicate teams #181

Closed wmacevoy closed 8 years ago

wmacevoy commented 8 years ago

If a canceled team is re-registered as a new team with the same name, the import fails. We adjusted the import to skip canceled teams with domjudge 5.0.1, file: domjudge/domserver/www/jury/impexp_baylor.php after line 124: foreach ( $group['team'] as $team ) { we inserted if (strcmp($team["status"],"CANCELED")==0) { continue; }

eldering commented 8 years ago

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

wmacevoy commented 8 years ago

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

tomas-cerny commented 8 years ago

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy notifications@github.com wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809.

eldering commented 8 years ago

Hi Tom,

To clarify: do you mean that when importing teams from the ICPC interface into DOMjudge we should indeed ignore teams marked as "canceled"? (Or are you referring to another stage where team info is uploaded into the ICPC system?)

Jaap

On 07-11-15 13:15, Tomas wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy notifications@github.com wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154713415.

tomas-cerny commented 8 years ago

I suggest to ignore canceled teams at any stage. If we export canceled teams anywhere in Web Service, then we should patch it. The exports are slightly different, as they are multipurpose and the canceled team export might be intended for manual verification.

Let me know if we mutually agree, and in case which Web Services do u use.

Thanks, Tom

On Sat, Nov 7, 2015 at 4:24 PM, Jaap Eldering notifications@github.com wrote:

Hi Tom,

To clarify: do you mean that when importing teams from the ICPC interface into DOMjudge we should indeed ignore teams marked as "canceled"? (Or are you referring to another stage where team info is uploaded into the ICPC system?)

Jaap

On 07-11-15 13:15, Tomas wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy <notifications@github.com

wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub <https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809 .

— Reply to this email directly or view it on GitHub <https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154713415 .

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154714242.

meisterT commented 8 years ago

We have to know if teams are cancelled to update an old import.

Let me have a look at the source code tomorrow to suggest a better solution than to suppress those teams.

Am 7. November 2015 16:28:18 MEZ, schrieb Tomas notifications@github.com:

I suggest to ignore canceled teams at any stage. If we export canceled teams anywhere in Web Service, then we should patch it. The exports are slightly different, as they are multipurpose and the canceled team export might be intended for manual verification.

Let me know if we mutually agree, and in case which Web Services do u use.

Thanks, Tom

On Sat, Nov 7, 2015 at 4:24 PM, Jaap Eldering notifications@github.com wrote:

Hi Tom,

To clarify: do you mean that when importing teams from the ICPC interface into DOMjudge we should indeed ignore teams marked as "canceled"? (Or are you referring to another stage where team info is uploaded into the ICPC system?)

Jaap

On 07-11-15 13:15, Tomas wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy <notifications@github.com

wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub

<https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809 .

— Reply to this email directly or view it on GitHub

<https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154713415 .

— Reply to this email directly or view it on GitHub

https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154714242.


Reply to this email directly or view it on GitHub: https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154715760

Diese Nachricht wurde von meinem Android-Gerät mit SMile gesendet.

wmacevoy commented 8 years ago

the import, in 5.0.1, does not give that option, it just fails with the duplicate key.

On Nov 7, 2015, at 8:15 AM, Tomas notifications@github.com wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy notifications@github.com wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809.

— Reply to this email directly or view it on GitHub.

wmacevoy commented 8 years ago

Well that's what failed for us. Again the root of the problem l believe is the use of the team name as a unique key; once a team is canceled another can be created with the same name. When we imported (directly using a key) the import failed beacaue of duplicate team names.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 8:24 AM, Jaap Eldering notifications@github.com wrote:

Hi Tom,

To clarify: do you mean that when importing teams from the ICPC interface into DOMjudge we should indeed ignore teams marked as "canceled"? (Or are you referring to another stage where team info is uploaded into the ICPC system?)

Jaap

On 07-11-15 13:15, Tomas wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy notifications@github.com wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering notifications@github.com wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154713415.

— Reply to this email directly or view it on GitHub.

tomas-cerny commented 8 years ago

This is allowed in the registration system to have multiple teams in contest with the same name where only one is pending or accepted and all others canceled.

T

On Sun, Nov 8, 2015 at 5:25 AM, Warren MacEvoy notifications@github.com wrote:

Well that's what failed for us. Again the root of the problem l believe is the use of the team name as a unique key; once a team is canceled another can be created with the same name. When we imported (directly using a key) the import failed beacaue of duplicate team names.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 8:24 AM, Jaap Eldering notifications@github.com wrote:

Hi Tom,

To clarify: do you mean that when importing teams from the ICPC interface into DOMjudge we should indeed ignore teams marked as "canceled"? (Or are you referring to another stage where team info is uploaded into the ICPC system?)

Jaap

On 07-11-15 13:15, Tomas wrote:

Hello, the canceled team is understood as removed, but it is needed to keep history. I suggest not to upload canceled teams.

Tom

On Sat, Nov 7, 2015 at 3:25 PM, Warren MacEvoy < notifications@github.com> wrote:

We did it with the web import, no tsv; but he problem is simple enough; you are using the team name as a key and, if a team is canceled, that name can be use again. We just added the code to skip the import on canceled teams. A more complete solution might include a checkbox but I'm not sure why you want to include canceled teams.

Warren MacEvoy wmacevoy@coloradomesa.edu http://www.coloradomesa.edu/~wmacevoy 970-248-1070

On Nov 7, 2015, at 5:17 AM, Jaap Eldering <notifications@github.com

wrote:

This issue was indeed also reported by UKIEPC contest staff. Do you still have the original TSV import files? That would help us to completely understand and fix this. You can send these to team@domjudge.org.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub < https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154709809>.

— Reply to this email directly or view it on GitHub < https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154713415>.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/DOMjudge/domjudge/issues/181#issuecomment-154775107.

meisterT commented 8 years ago

We have discussed the issue and dropped the unique constraint as a result of the discussion in e062dfbbccdb374b5c17a4bd8f082a75a1dd2868.