Total Knowledge Projects Jobs Clientele Contact

UU Tech

Personal tools
From Total Knowledge
(Difference between revisions)
Jump to: navigation, search
(add view-single-page link)
(Technotes are just a single-page view now.)
Line 1: Line 1:
-
Technological aspects of UU implementation. ([[UU_Tech_single|view as single page]])
+
Technological aspects of UU implementation.
-
1. [[Versioning]]
+
== Tech notes ==
 +
=== Versioning ===
 +
{{:Versioning}}
-
2. [[Object References]]
+
=== Object References ===
-
 
+
{{:Object References}}
-
3. [[Object Edit Flow]]
+
=== Object Edit Flow ===
 +
{{:Object Edit Flow}}

Revision as of 01:59, 6 February 2006

Technological aspects of UU implementation.

Contents

Tech notes

Versioning

Like in Wiki, there are two kinds of edits:

1. Versioned edits
2. Minor edits

Minor edits do not create new versions of the document, but change existing version instead. As such, they are irreversible. Only latest version can be edited.

It is author's decision, wether to designate change as minor or as versioned.

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

Object References

Shareable object references can be aware of versioning in following ways:

1. Always use latest version of referenced object
2. Always stay at current version
3. Notify author of referenced object updates

In all of these cases, changes to referenced object do _not_ constitute changes to referenceing object.

Object change notifications

There are few ways to notify referrer about change of referenced object. When reference is made, referer choses what he wants.

Email notification

* Each change - an email
* Digest - user gets summary of changes in all objects once in a while

Special page

Special page which provides filtered summary of changes, i.e. for all objects referenced by given course.

Object Edit Flow

Logically object editing follows this pattern:

1. Edit Object action is requested. It creates a temporary copy of an object
2. User edits and saves the copy (it can be saved as many times as needed)
3. When user is satisfied he executes "Release" action. Minor/Versioned edit
   is a required parameter for edit action. Probably will be implemented as
   radio button, that does not have initial value set (to avoid user forgetting
   to decided what kind of edit is it)


Internally object editing translates to following:

1. Edit Object action is requested. It creates a new version of an object in unpublished state (not visible for anyone besides author(s)). 
2. Any child objects connections are copied from the prior version.
3. User edits and saves the copy (it can be saved as many times as needed)
4. When user is satisfied he executes "Publish" action. Object is switched to published state.
5. All the connections to the parent objects are processed. The action on every connection is performed as defined in version_policy field of the connection.

Minor/Versioned edit is a required parameter for edit action. Probably will be implemented as radio button, that does not have initial value set (to avoid user forgetting to decided what kind of edit is it)