Ilya A. Volynets-Evenbakh wrote:
Alexey Parshin wrote:2) what do we do when the new version is produced. My idea is - to switch all the object connections to that new version ( edit) or to produce a new version disconnected, to be used in another parent object (clone).From http://www.total-knowledge.com/wiki/index.php/UU_Tech When a new version is created, all objects linking to this one are notified. Their action can be one of the following: * Silently use new version * Use new version and notify owner * Notify owner and keep old version * Silently stick with old version
First of all, there is no such term as "owner" in our specs, ideology, understanding and so forth. This is one out of few the most important points, which is essential for the smallest issues/decisions. We have Author and User. Let us keep it this way.
What specs tell us about versioning thus far? 2.1.5 Object Versioning-OLet's say user X creates object O. The user Y uses O in his course. Now X changes O. Will the course include edited version of O, or original one? Ideally it should be up to Y to decide that. This leads us to the concept of object versioning. i.e. each change to an object creates a new version, and old one stays. When linking objects to each other (i.e. adding problem to topic) author decides which version to use.
1. Now, let's the Author (X - here) creates a new version (say, it could be marked as draft or such like at the first stage, and in the end gets marked "Final") then all users (Y - here) of the object, EXCEPT the Author get notified that a new version of the UMO is created by its author. 2. Also, all users (X and Y - here), INCLUDING the author have to have option at the moment: to put the new version in or not. 3. If a user (it can be the author) chooses to put the new version in, he states so and: a) the new version replaces the old one in all THIS USER's UMOs it used in. OR, as the matter of our decision: b) he can do it UMO by UMO. In that (preferable) variant he has to have an option to "Select All", or "Select Marked", or something like this - UMOs to use the new version of the upgraded UMO.
The important point here is that EACH user of the UMO decides for himself to use new version or not.
Hopefully, it is more or less clear now, how it should work for UU users. If there is any vagueness in this respect, let's clarify it first and then proceed to the object and db design.
-- Anatoly Volynets, Co-Founder total-knowledge.com culturedialogue.org
Authoright © Total Knowledge: 2001-2008