Index: openacs-4/packages/acs-content-repository/www/doc/tutorial.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/tutorial.adp,v diff -u -N -r1.2.2.5 -r1.2.2.6 --- openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 7 Jun 2017 08:11:04 -0000 1.2.2.5 +++ openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 6 Aug 2017 11:31:20 -0000 1.2.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {Content Repository}} {ACS Content Repository Tutorial} +{/doc/acs-content-repository {ACS Content Repository}} {ACS Content Repository Tutorial} ACS Content Repository Tutorial

How to use the content repository

@@ -28,7 +28,7 @@ an excellent, helpful tutorial for people new to the content repository.

Introduction

-

For the sake of an example, I'm going to use a Tasks +

For the sake of an example, I'm going to use a Tasks application. This application will keep track of all the tasks of an organization, deadlines for those tasks, and who needs to work on them.

@@ -80,7 +80,7 @@ Convention: often, developers will name the first table by what it is (in my case pm_tasks), and the second, versioned table by the same name, but with _revisions at -the end. Thus, I'll name my second table +the end. Thus, I'll name my second table pm_tasks_revisions.

This is actually very easy: @@ -123,7 +123,7 @@ pm_tasks_revisions table revision_id. Why? There are some views that are automatically generated that combine these tables for you, but they won't be created if the names -conflict. I'll describe what these views are later, but they +conflict. I'll describe what these views are later, but they are useful. You were warned.

Notice that each table uses as its primary key a reference to either the cr_revisions table or the @@ -230,18 +230,18 @@ them.

A lot of the intelligent things you can do with this information is still being built. But imagine for example that you -are using the project manager package I've written. You work at +are using the project manager package I've written. You work at an ice cream company, and every task that is done also has an associated ice cream flavor with it (yeah, this isn't a good -example, but pay attention anyway). If I've written the project +example, but pay attention anyway). If I've written the project manager to take advantage of it, when you add in this extra attribute to the pm_tasks_revisions table, the UI aspects will be automatically taken care of. You'll be able to select a flavor when you edit a task, and it will be shown on the task view page. This is the direction OpenACS development is going, and it will be really really cool!

-

First, I'm going to describe how to extend other content -repository tables using the CR API. Then, I'll describe how to +

First, I'm going to describe how to extend other content +repository tables using the CR API. Then, I'll describe how to set up your own tables as well:

As you recall from earlier in this page, attributes are just another term for columns in a table. The Content Repository has a @@ -343,8 +343,9 @@ You can see the actual functions used in project manager via the GitHub browser's entry for project-manager -. Note these are a -little more expanded than what I've used in the examples above. +. Note these are +a little more expanded than what I've used in the examples +above.

 select define_function_args('pm_task__new_task_item', 'task_id, project_id, title, description, end_date, percent_complete, estimated_hours_work, estimated_hours_work_min, estimated_hours_work_max, creation_date, creation_user, creation_ip, package_id');
 
@@ -578,7 +579,7 @@
 (cr_items
 ), or a subclass of a content_item (such as
 cr_folders
-). I'll explain more later about
+). I'll explain more later about
 cr_folders
 .
 

One thing that you might want to do for your application is to @@ -655,7 +656,7 @@

Note that this example is for projects rather than tasks. This is -because for the application I'm writing, projects are what +because for the application I'm writing, projects are what tasks are stored inside of. A project has many component tasks. If you were writing another application, or if I wasn't doing anythign with projects, then this would be creating a folder for @@ -818,7 +819,7 @@ Really, however, what you need to do is make sure your __delete and drop scripts first go through and delete all children of those -items. I'm not sure if you need to delete the items themselves +items. I'm not sure if you need to delete the items themselves -- I believe they may be dropped by themselves when the tables are dropped, because of the cascade portion of the SQL