Index: openacs-4/packages/acs-content-repository/acs-content-repository.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v
diff -u -r1.112 -r1.113
--- openacs-4/packages/acs-content-repository/acs-content-repository.info	4 Sep 2017 06:23:58 -0000	1.112
+++ openacs-4/packages/acs-content-repository/acs-content-repository.info	25 Oct 2017 07:33:25 -0000	1.113
@@ -7,7 +7,7 @@
     <initial-install-p>t</initial-install-p>
     <singleton-p>t</singleton-p>
 
-    <version name="5.10.0d2" url="http://openacs.org/repository/download/apm/acs-content-repository-5.10.0d2.apm">
+    <version name="5.10.0d3" url="http://openacs.org/repository/download/apm/acs-content-repository-5.10.0d3.apm">
     <implements-subsite-p>f</implements-subsite-p>
     <inherit-templates-p>t</inherit-templates-p>
         <owner url="http://openacs.org">OpenACS</owner>
@@ -21,7 +21,7 @@
         <license>GPL</license>
         <maturity>3</maturity>
 
-        <provides url="acs-content-repository" version="5.10.0d2"/>
+        <provides url="acs-content-repository" version="5.10.0d3"/>
         <requires url="acs-kernel" version="5.9.1"/>
         <requires url="acs-service-contract" version="5.9.1"/>
         <requires url="acs-tcl" version="5.9.1"/>
Index: openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.10.0d2-5.10.0d3.sql	25 Oct 2017 07:33:25 -0000	1.1
@@ -0,0 +1,207 @@
+--
+-- For whatever reason, old installations with many upgrades
+-- (e.g. openacs.org) might have still the very old definition without
+-- the named parameters.
+--
+DROP FUNCTION IF EXISTS image__new(character varying, integer, integer, integer, character varying, integer, character varying, character varying, character varying, character varying, boolean, timestamp without time zone, character varying, integer, integer,  integer);
+
+--
+-- Some installations (e.g. learn) have a version where the p_storage_type is still varchar
+-- 
+DROP FUNCTION IF EXISTS image__new(character varying, integer, integer, integer, character varying, integer, character varying, character varying, character varying, character varying, character varying, character varying, timestamp with time zone, integer, integer, integer);
+
+--
+-- To be on the safe side, update both versions (same functions as in the 5.9.1 release)
+--
+
+--
+-- procedure image__new/17
+--
+CREATE OR REPLACE FUNCTION image__new(
+   new__name varchar,
+   new__parent_id integer,        -- default null
+   new__item_id integer,          -- default null
+   new__revision_id integer,      -- default null
+   new__mime_type varchar,        -- default jpeg
+   new__creation_user integer,    -- default null
+   new__creation_ip varchar,      -- default null
+   new__relation_tag varchar,     -- default null
+   new__title varchar,            -- default null
+   new__description varchar,      -- default null
+   new__is_live boolean,          -- default f
+   new__publish_date timestamptz, -- default now()
+   new__path varchar,
+   new__file_size integer,
+   new__height integer,
+   new__width integer,
+   new__package_id integer default null
+
+) RETURNS integer AS $$
+DECLARE
+
+    new__locale          varchar default null;
+    new__nls_language	 varchar default null;
+    new__creation_date	 timestamptz default current_timestamp;
+    new__context_id      integer;	
+
+    v_item_id		 cr_items.item_id%TYPE;
+    v_package_id	 acs_objects.package_id%TYPE;
+    v_revision_id	 cr_revisions.revision_id%TYPE;
+  BEGIN
+    new__context_id := new__parent_id;
+
+    if new__package_id is null then
+      v_package_id := acs_object__package_id(new__parent_id);
+    else
+      v_package_id := new__package_id;
+    end if;
+
+    v_item_id := content_item__new (
+      new__name,
+      new__parent_id,
+      new__item_id,
+      new__locale,
+      new__creation_date,
+      new__creation_user,	
+      new__context_id,
+      new__creation_ip,
+      'content_item',
+      'image',
+      null,
+      new__description,
+      new__mime_type,
+      new__nls_language,
+      null,
+      'file', -- storage_type
+      v_package_id
+    );
+
+    -- update cr_child_rels to have the correct relation_tag
+    update cr_child_rels
+    set relation_tag = new__relation_tag
+    where parent_id = new__parent_id
+    and child_id = new__item_id
+    and relation_tag = content_item__get_content_type(new__parent_id) || '-' || 'image';
+
+    v_revision_id := content_revision__new (
+      new__title,
+      new__description,
+      new__publish_date,
+      new__mime_type,
+      new__nls_language,
+      new__path,
+      v_item_id,
+      new__revision_id,
+      new__creation_date,
+      new__creation_user,
+      new__creation_ip,
+      new__file_size,
+      v_package_id
+    );
+
+    insert into images
+    (image_id, height, width)
+    values
+    (v_revision_id, new__height, new__width);
+
+    -- is_live => 't' not used as part of content_item.new
+    -- because content_item.new does not let developer specify revision_id,
+    -- revision_id is determined in advance 
+
+    if new__is_live = 't' then
+       PERFORM content_item__set_live_revision (v_revision_id);
+    end if;
+
+    return v_item_id;
+END; 
+$$ LANGUAGE plpgsql;
+
+-- DRB's version
+--
+-- procedure image__new/16
+--
+-- compared to image_new/17:
+--    * has no relation_tag, is_live, path, file_size
+--    * but has storage_type, content_type, nls_language
+--
+CREATE OR REPLACE FUNCTION image__new(
+   p_name varchar,
+   p_parent_id integer,     -- default null
+   p_item_id integer,       -- default null
+   p_revision_id integer,   -- default null
+   p_mime_type varchar,     -- default jpeg
+   p_creation_user integer, -- default null
+   p_creation_ip varchar,   -- default null
+   p_title varchar,         -- default null
+   p_description varchar,   -- default null
+   p_storage_type cr_items.storage_type%TYPE,
+   p_content_type varchar,
+   p_nls_language varchar,
+   p_publish_date timestamptz,
+   p_height integer,
+   p_width integer,
+   p_package_id integer default null
+
+) RETURNS integer AS $$
+DECLARE
+    v_item_id		 cr_items.item_id%TYPE;
+    v_revision_id	 cr_revisions.revision_id%TYPE;
+    v_package_id	 acs_objects.package_id%TYPE;
+  BEGIN
+
+     if content_item__is_subclass(p_content_type, 'image') = 'f' then
+       raise EXCEPTION '-20000: image__new can only be called for an image type'; 
+     end if;
+
+    if p_package_id is null then
+      v_package_id := acs_object__package_id(p_parent_id);
+    else
+      v_package_id := p_package_id;
+    end if;
+
+    v_item_id := content_item__new (
+      p_name,
+      p_parent_id,
+      p_item_id,
+      null,
+      current_timestamp,
+      p_creation_user,	
+      p_parent_id,
+      p_creation_ip,
+      'content_item',
+      p_content_type,
+      null,
+      null,
+      null,
+      null,
+      null,
+      p_storage_type,
+      v_package_id
+    );
+
+    -- We will let the caller fill in the LOB data or file path.
+
+    v_revision_id := content_revision__new (
+      p_title,
+      p_description,
+      p_publish_date,
+      p_mime_type,
+      p_nls_language,
+      null,            -- text
+      v_item_id,
+      p_revision_id,
+      current_timestamp,
+      p_creation_user,
+      p_creation_ip,
+      null,            -- content_length
+      v_package_id
+    );
+
+    insert into images
+    (image_id, height, width)
+    values
+    (v_revision_id, p_height, p_width);
+
+    return v_item_id;
+END; 
+$$ LANGUAGE plpgsql;
Index: openacs-4/packages/acs-content-repository/www/index.vuh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/index.vuh,v
diff -u -r1.12 -r1.13
--- openacs-4/packages/acs-content-repository/www/index.vuh	7 Aug 2017 23:47:47 -0000	1.12
+++ openacs-4/packages/acs-content-repository/www/index.vuh	25 Oct 2017 07:33:25 -0000	1.13
@@ -10,7 +10,7 @@
 } {    
     { revision_id "" }
 }
-
+ns_log notice "======= index.vuh"
 # Get the paths
 set the_root $::acs::pageroot
 set the_url [ad_conn path_info]