Index: openacs-4/packages/assessment/sql/postgresql/assessment-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/sql/postgresql/assessment-create.sql,v diff -u -r1.12 -r1.13 --- openacs-4/packages/assessment/sql/postgresql/assessment-create.sql 9 Aug 2004 09:15:35 -0000 1.12 +++ openacs-4/packages/assessment/sql/postgresql/assessment-create.sql 25 Oct 2004 16:05:10 -0000 1.13 @@ -9,3 +9,4 @@ \i assessment-item-create.sql \i assessment-section-create.sql \i assessment-collected-data-create.sql +\i assessment-files.sql Index: openacs-4/packages/assessment/sql/postgresql/assessment-files.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/sql/postgresql/Attic/assessment-files.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/sql/postgresql/assessment-files.sql 25 Oct 2004 16:05:10 -0000 1.1 @@ -0,0 +1,53 @@ +-- +-- Assessment Package +-- +-- @author eperez@it.uc3m.es +-- @creation-date 2004-10-25 +-- + +create table as_files ( + file_id integer + constraint as_files_file_id_pk + primary key + constraint as_files_file_id_fk + references cr_revisions(revision_id) +); + +select content_type__create_type ( + 'as_files', -- content_type + 'content_revision', -- super_type + 'Assessment File', -- pretty_name + 'Assessment Files', -- pretty_plural + 'as_files', -- table_name + 'file_id', -- id_column + null -- name_method +); + +create or replace function inline_0 () +returns integer as' +declare + template_id integer; +begin + + -- Create the (default) content type template + + template_id := content_template__new( + ''as_files_default'', -- name + ''@text;noquote@'', -- text + true -- is_live + ); + + -- Register the template for the content type + + perform content_type__register_template( + ''as_files'', -- content_type + template_id, -- template_id + ''public'', -- use_context + ''t'' -- is_default + ); + + return null; +end;' language 'plpgsql'; + +select inline_0(); +drop function inline_0(); Index: openacs-4/packages/assessment/tcl/as-file-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-file-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/tcl/as-file-procs.tcl 25 Oct 2004 16:05:11 -0000 1.1 @@ -0,0 +1,35 @@ +ad_library { + File procs + @author eperez@it.uc3m.es + @creation-date 2004-10-25 +} + +namespace eval as::file {} + +ad_proc -public as::file::new { + {-file_pathname:required} +} { + @author eperez@it.uc3m.es + @creation-date 2004-10-25 + + New as_file to the CR +} { + set package_id [ad_conn package_id] + set folder_id [db_string get_folder_id "select folder_id from cr_folders where package_id=:package_id"] + + # Get the filename part of the upload file + if { ![regexp {[^//\\]+$} $file_pathname file_name] } { + # no match + set file_name $file_pathname + } + # TODO make the CR name be a SHA1 of the file to prevent too much files repeated + set file_item_id [content::item::new -parent_id $folder_id -content_type {as_files} -name [ad_generate_random_string] -title $file_name] + set file_revision_id [content::revision::new -item_id $file_item_id -content_type {as_files} -title $file_name ] + set filename [cr_create_content_file $file_item_id $file_revision_id $file_pathname] + set title [template::util::file::get_property filename $file_pathname] + set mime_type [cr_filename_to_mime_type -create $title] + set content_length [file size $file_pathname] + db_dml set_file_content { update cr_revisions set content = :filename, mime_type = :mime_type, content_length = :content_length where revision_id = :file_revision_id } + + return $file_revision_id +} Index: openacs-4/packages/assessment/tcl/as-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-install-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/assessment/tcl/as-install-procs.tcl 14 Oct 2004 11:44:51 -0000 1.1 +++ openacs-4/packages/assessment/tcl/as-install-procs.tcl 25 Oct 2004 16:05:11 -0000 1.2 @@ -191,5 +191,6 @@ content::folder::register_content_type -folder_id $folder_id -content_type {as_sessions} -include_subtypes t content::folder::register_content_type -folder_id $folder_id -content_type {as_section_data} -include_subtypes t content::folder::register_content_type -folder_id $folder_id -content_type {as_item_data} -include_subtypes t + content::folder::register_content_type -folder_id $folder_id -content_type {as_files} -include_subtypes t } Index: openacs-4/packages/assessment/www/view/index-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/view/index-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/view/index-postgresql.xql 25 Oct 2004 16:05:11 -0000 1.1 @@ -0,0 +1,15 @@ + + + + postgresql7.1 + + + + + select content_template__get_root_folder() + + + + + + Index: openacs-4/packages/assessment/www/view/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/view/index.vuh,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/view/index.vuh 25 Oct 2004 16:05:11 -0000 1.1 @@ -0,0 +1,38 @@ +ad_page_contract { + + @author Unknown + @creation-date Unknown + @cvs-id $Id: index.vuh,v 1.1 2004/10/25 16:05:11 eduardop Exp $ +} { + revision_id:integer,notnull +} + +# Get the paths +set the_root [ns_info pageroot] +set package_id [ad_conn package_id] + +# Get the IDs + +db_1row revision_info { *SQL* } +set the_url $name +#set content_root [db_string get_folder_id { *SQL* }] +set content_root [db_string get_folder_id "select folder_id from cr_folders where package_id=:package_id"] + +set template_root "" + +# Serve the page + +if { [content::init the_url the_root $content_root $template_root public $revision_id $content_type] } { + set file "$the_root/$the_url" + rp_internal_redirect -absolute_path $file +} else { + # ns_returnnotfound + set page "[ad_header {Content Item Not Found}]" + append page "

Content Item Not Found

" + append page "The requested item is not available for viewing. " + append page "The item is either not available on this server or it is not in a publishable state " + append page "Unpublished items can be viewed via the CMS interface if the CMS package is installed.
" + append page "[ad_footer]" + doc_return 200 text/html $page +} + Index: openacs-4/packages/assessment/www/view/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/view/index.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/view/index.xql 25 Oct 2004 16:05:11 -0000 1.1 @@ -0,0 +1,14 @@ + + + + + + + select cri.content_type, cri.name + from cr_items cri, cr_revisions crr + where cri.item_id = crr.item_id + and crr.revision_id = :revision_id + + + +