summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhukl <hukl@eight.local>2009-02-08 13:12:41 +0100
committerhukl <hukl@eight.local>2009-02-08 13:12:41 +0100
commit1a6516c7c8103fb63e7e11134e0fd8ff9f26d6fe (patch)
tree7af93da4140414d8e5237f7f99e64bed461489f6
parent3289d0a7a0589baa5bff470df4e07ec2bed99222 (diff)
refined concept
-rw-r--r--doc/README_FOR_APP43
1 files changed, 42 insertions, 1 deletions
diff --git a/doc/README_FOR_APP b/doc/README_FOR_APP
index bd9abe7..ef03d13 100644
--- a/doc/README_FOR_APP
+++ b/doc/README_FOR_APP
@@ -93,4 +93,45 @@ extract db/updates.tbz
93start a script/console and execute the following commands: 93start a script/console and execute the following commands:
94 94
95i = UpdateImporter.new("#{RAILS_ROOT}/db/updates") 95i = UpdateImporter.new("#{RAILS_ROOT}/db/updates")
96i.import_xml \ No newline at end of file 96i.import_xml
97
98===============================================================================
99Node
100
101The whole structure of the website is built from nodes. They live within a
102nested set structure. Nodes are really just proxy objects though. They point to
103information but they don't hold that information themselves. Instead they have
104pages associated to them. When you want to render a particular node, you
105actually render a page associated to that node. When multiple pages are attached
106to a node, they act as one page with many revisions. The node itself holds the
107pointer to current or head revision.
108
109Page
110
111Although there is really on Page class, the pages associated to one node differ
112slightly. Obviously there is a slight difference between the head and the other
113revisions. While the head is always the most recent page which is publicly
114available, all the older revisions are only kind of a history.
115
116Now when a user wants to modify or edit the content of the head revision he or
117she is editing a new revision instead. This new revision is considered a draft
118and has the current content of the head revision copied onto itself.
119
120Draft
121
122A draft has an author attached to it which makes sure that only the creator of
123that draft is able to edit it. This is a form of pessimistic locking as it
124prevents more than one user from editing and saving the same page.
125
126However, if an author should choose to abandon his draft or to let somebody else
127finish it, the author can withdraw his lock. In this case, the draft has no
128longer an author associated to itself which enables another user to edit this
129draft.
130
131To abandon or revert a draft, the author can also delete it entirely so that
132when another user is editing, he or she would get a fresh copy from the current
133head revision.
134
135Of course a admin user can always override or remove locks on drafts. In case
136an author created a draft but simply didn't care anymore, an admin could remove
137that draft or the lock on it enabling other users to edit that page again. \ No newline at end of file