[contestms-dev] Re: Separate users and tasks from contests

  • From: Stefano Maggiolo <s.maggiolo@xxxxxxxxx>
  • To: contestms-dev <contestms-dev@xxxxxxxxxxxxx>
  • Date: Tue, 12 Aug 2014 17:21:59 +0100

On 12 August 2014 16:25, William Di Luigi <williamdiluigi@xxxxxxxxx> wrote:

>
>  Re the main point: I think that Giovanni has a few very good points
>> against treating tasks out of contests in the same way as users out of
>> contests. I agree with him that it would be surprising to see a task in a
>> contest being modified after I modify a task for a different contest (which
>> is what would happen if the underlying task was a single object). Also I
>> think that the division of fields between Task and TaskContest is always
>> going to be a bit arbitrary.
>>
>
> I think that if a task is changed, that's because it had errors (wrong
> statement, wrong jury's solution...), so it makes sense if it gets updated
> automatically across all contests which use it (see the example I talked
> about in the last mail).
>

If you had already used the task in a previous contest, you *may* want to
fix it, but you want to be very aware of what's happening, because it
involves reevaluations, communicating the mistake, etc (or other things if
the contest had already ended). In general it doesn't seem a good idea to
change a contest when you are thinking of and working on a different one.


  What about Giovanni's half-idea of cloning tasks? You would still have
>> (as in your idea) a task repository inside CMS (no need to import stuff
>> from outside for your privileged users), and each occurrence of a task in a
>> contest is still going to be separate from all other instances. We can have
>> an additional "parent" field for tasks, marking the one from which they
>> come from, and we can have an interface to see diff of configuration and
>> easily sync them.
>>
>> This would be good also for datasets, honestly :)
>>
>
> If I understand correctly, you are proposing to implement a task
> versioning system. I'm not sure, but I think *that* would be one hard
> thing to do :)
>
 [...]
>

No, I'm *not* proposing something like:
- creating task A;
- cloning A to B;
- changing field alpha of B (no change to A.alpha);
- changing field beta of A (this change B.beta too);
- changing field alpha of A (conflict, decide what to do).

I'm proposing something like:
- creating task A;
- cloning A to B;
- changing field alpha of B (no change to A.alpha);
- changing field beta of A (no change to B.beta);
- changing field alpha of A (no change to B.alpha);
- you can see the differences between A and B in a "graphical diff tool"
and move field values from A to B and vice versa with one click.

This last point is what I think it would be useful for datasets too (it is
now difficult to see what are the differences between datasets).

Other related posts: