--
-- packages/notes/sql/notes-create.sql
--
-- @author rhs@mit.edu
-- @creation-date 2000-10-22
-- @cvs-id $Id: template-demo-notes-create.sql,v 1.8 2013/03/30 18:04:20 gustafn Exp $
--
-- openacs port: vinod kurup vkurup@massmed.org
--
CREATE OR REPLACE FUNCTION inline_0 () RETURNS integer AS $$
BEGIN
PERFORM acs_object_type__create_type (
'template_demo_note', -- object_type
'Template Demo Note', -- pretty_name
'Template Demo Notes', -- pretty_plural
'acs_object', -- supertype
'template_demo_notes', -- table_name
'template_demo_note_id', -- id_column
null, -- package_name
'f', -- abstract_p
null, -- type_extension_table
'template_demo_note.name' -- name_method
);
return 0;
END;
$$ LANGUAGE plpgsql;
select inline_0 ();
drop function inline_0 ();
CREATE OR REPLACE FUNCTION inline_1 () RETURNS integer AS $$
BEGIN
PERFORM acs_attribute__create_attribute (
'template_demo_note', -- object_type
'title', -- attribute_name
'string', -- datatype
'Title', -- pretty_name
'Titles', -- pretty_plural
null, -- table_name
null, -- column_name
null, -- default_value
1, -- min_n_values
1, -- max_n_values
null, -- sort_order
'type_specific', -- storage
'f' -- static_p
);
PERFORM acs_attribute__create_attribute (
'template_demo_note', -- object_type
'body', -- attribute_name
'string', -- datatype
'Body', -- pretty_name
'Bodies', -- pretty_plural
null, -- table_name
null, -- column_name
null, -- default_value
1, -- min_n_values
1, -- max_n_values
null, -- sort_order
'type_specific', -- storage
'f' -- static_p
);
PERFORM acs_attribute__create_attribute (
'template_demo_note', -- object_type
'color', -- attribute_name
'string', -- datatype
'Color', -- pretty_name
'Colors', -- pretty_plural
null, -- table_name
null, -- column_name
null, -- default_value
1, -- min_n_values
1, -- max_n_values
null, -- sort_order
'type_specific', -- storage
'f' -- static_p
);
return 0;
END;
$$ LANGUAGE plpgsql;
select inline_1 ();
drop function inline_1 ();
create table template_demo_notes (
template_demo_note_id
integer
constraint template_demo_notes_note_id_fk
references acs_objects(object_id)
constraint template_demo_notes_note_id_pk
primary key,
title varchar(255)
constraint template_demo_notes_title_nn
not null,
body text,
color text
);
-- old define_function_args('template_demo_note__new','template_demo_note_id,title,body,color,object_type;template_demo_note,creation_date;now,creation_user,creation_ip,context_id')
-- new
select define_function_args('template_demo_note__new','template_demo_note_id;null,title,body,color,object_type;template_demo_note,creation_date;now,creation_user;null,creation_ip;null,context_id;null');
--
-- procedure template_demo_note__new/9
--
CREATE OR REPLACE FUNCTION template_demo_note__new(
p_template_demo_note_id integer, -- default null
p_title varchar,
p_body varchar,
p_color varchar,
p_object_type varchar, -- default 'template_demo_note'
p_creation_date timestamptz, -- default now() -- default 'now'
p_creation_user integer, -- default null
p_creation_ip varchar, -- default null
p_context_id integer -- default null
) RETURNS integer AS $$
DECLARE
v_template_demo_note_id template_demo_notes.template_demo_note_id%TYPE;
BEGIN
v_template_demo_note_id := acs_object__new (
p_template_demo_note_id,
p_object_type,
p_creation_date,
p_creation_user,
p_creation_ip,
p_context_id
);
insert into template_demo_notes
(template_demo_note_id, title, body, color)
values
(v_template_demo_note_id, p_title, p_body, p_color);
if p_creation_user is not null then
PERFORM acs_permission__grant_permission(
v_template_demo_note_id,
p_creation_user,
'admin'
);
end if;
return v_template_demo_note_id;
END;
$$ LANGUAGE plpgsql;
select define_function_args('template_demo_note__del','template_demo_note_id');
--
-- procedure template_demo_note__del/1
--
CREATE OR REPLACE FUNCTION template_demo_note__del(
p_template_demo_note_id integer
) RETURNS integer AS $$
DECLARE
BEGIN
delete from acs_permissions
where object_id = p_template_demo_note_id;
delete from template_demo_notes
where template_demo_note_id = p_template_demo_note_id;
raise NOTICE 'Deleting note...';
PERFORM acs_object__delete(p_template_demo_note_id);
return 0;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('template_demo_note__name','template_demo_note_id');
--
-- procedure template_demo_note__name/1
--
CREATE OR REPLACE FUNCTION template_demo_note__name(
p_template_demo_note_id integer
) RETURNS varchar AS $$
DECLARE
v_template_demo_note_name template_demo_notes.title%TYPE;
BEGIN
select title into v_template_demo_note_name
from template_demo_notes
where template_demo_note_id = p_template_demo_note_id;
return v_template_demo_note_name;
END;
$$ LANGUAGE plpgsql;
-- neophytosd