Index: openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl,v diff -u -r1.28.2.2 -r1.28.2.3 --- openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl 13 Sep 2022 13:52:36 -0000 1.28.2.2 +++ openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl 13 Sep 2022 13:55:04 -0000 1.28.2.3 @@ -15,101 +15,99 @@ namespace eval evaluation::apm {} -ad_proc -public evaluation::apm::package_install { -} { - +ad_proc -private evaluation::apm::package_install {} { Does the integration with the notifications package. } { db_transaction { - # Create the impl and aliases for one assignment - set impl_id [create_one_assignment_impl] + # Create the impl and aliases for one assignment + set impl_id [create_one_assignment_impl] - # Create the notification type for one assignment - set type_id [create_one_assignment_type -impl_id $impl_id] + # Create the notification type for one assignment + set type_id [create_one_assignment_type -impl_id $impl_id] - # Enable the delivery intervals and delivery methods for a specific assignment - enable_intervals_and_methods -type_id $type_id + # Enable the delivery intervals and delivery methods for a specific assignment + enable_intervals_and_methods -type_id $type_id - # Create the impl and aliases for one evaluation - set impl_id [create_one_evaluation_impl] + # Create the impl and aliases for one evaluation + set impl_id [create_one_evaluation_impl] - # Create the notification type for one evaluation - set type_id [create_one_evaluation_type -impl_id $impl_id] + # Create the notification type for one evaluation + set type_id [create_one_evaluation_type -impl_id $impl_id] - # Enable the delivery intervals and delivery methods for a specific evaluation - enable_intervals_and_methods -type_id $type_id + # Enable the delivery intervals and delivery methods for a specific evaluation + enable_intervals_and_methods -type_id $type_id - # Create the content types - content::type::new -content_type evaluation_grades -supertype content_revision -pretty_name "Evaluation Grade" -pretty_plural "Evaluation Grades" -table_name evaluation_grades -id_column grade_id - content::type::new -content_type evaluation_tasks -supertype content_revision -pretty_name "Evaluation Task" -pretty_plural "Evaluation Tasks" -table_name evaluation_tasks -id_column task_id - content::type::new -content_type evaluation_tasks_sols -supertype content_revision -pretty_name "Evaluation Task Solution" -pretty_plural "Evaluation Tasks Solutions" -table_name evaluation_tasks_sols -id_column solution_id - content::type::new -content_type evaluation_answers -supertype content_revision -pretty_name "Student Answer" -pretty_plural "Student Answers" -table_name evaluation_answers -id_column answer_id - content::type::new -content_type evaluation_student_evals -supertype content_revision -pretty_name "Student Evaluation" -pretty_plural "Student Evaluations" -table_name evaluation_student_evals -id_column evaluation_id - content::type::new -content_type evaluation_grades_sheets -supertype content_revision -pretty_name "Evaluation Grades Sheet" -pretty_plural "Evaluation Grades Sheets" -table_name evaluation_grades_sheets -id_column grades_sheet_id + # Create the content types + content::type::new -content_type evaluation_grades -supertype content_revision -pretty_name "Evaluation Grade" -pretty_plural "Evaluation Grades" -table_name evaluation_grades -id_column grade_id + content::type::new -content_type evaluation_tasks -supertype content_revision -pretty_name "Evaluation Task" -pretty_plural "Evaluation Tasks" -table_name evaluation_tasks -id_column task_id + content::type::new -content_type evaluation_tasks_sols -supertype content_revision -pretty_name "Evaluation Task Solution" -pretty_plural "Evaluation Tasks Solutions" -table_name evaluation_tasks_sols -id_column solution_id + content::type::new -content_type evaluation_answers -supertype content_revision -pretty_name "Student Answer" -pretty_plural "Student Answers" -table_name evaluation_answers -id_column answer_id + content::type::new -content_type evaluation_student_evals -supertype content_revision -pretty_name "Student Evaluation" -pretty_plural "Student Evaluations" -table_name evaluation_student_evals -id_column evaluation_id + content::type::new -content_type evaluation_grades_sheets -supertype content_revision -pretty_name "Evaluation Grades Sheet" -pretty_plural "Evaluation Grades Sheets" -table_name evaluation_grades_sheets -id_column grades_sheet_id - # Create and register templates - set template_id [content::template::new -name evaluation-tasks-default -text "@text;noquote@" -is_live t] - content::type::register_template -content_type evaluation_tasks -template_id $template_id -use_context public -is_default t - set template_id [content::template::new -name evaluation-tasks-sols-default -text "@text;noquote@" -is_live t] - content::type::register_template -content_type evaluation_tasks_sols -template_id $template_id -use_context public -is_default t - set template_id [content::template::new -name evaluation-answers-default -text "@text;noquote@" -is_live t] - content::type::register_template -content_type evaluation_answers -template_id $template_id -use_context public -is_default t - set template_id [content::template::new -name evaluation-grades-sheets-default -text "@text;noquote@" -is_live t] - content::type::register_template -content_type evaluation_grades_sheets -template_id $template_id -use_context public -is_default t + # Create and register templates + set template_id [content::template::new -name evaluation-tasks-default -text "@text;noquote@" -is_live t] + content::type::register_template -content_type evaluation_tasks -template_id $template_id -use_context public -is_default t + set template_id [content::template::new -name evaluation-tasks-sols-default -text "@text;noquote@" -is_live t] + content::type::register_template -content_type evaluation_tasks_sols -template_id $template_id -use_context public -is_default t + set template_id [content::template::new -name evaluation-answers-default -text "@text;noquote@" -is_live t] + content::type::register_template -content_type evaluation_answers -template_id $template_id -use_context public -is_default t + set template_id [content::template::new -name evaluation-grades-sheets-default -text "@text;noquote@" -is_live t] + content::type::register_template -content_type evaluation_grades_sheets -template_id $template_id -use_context public -is_default t - # Create content type attributes for content type evaluation_grades - content::type::attribute::new -content_type evaluation_grades -attribute_name grade_item_id -datatype number -pretty_name grade_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_grades -attribute_name grade_name -datatype string -pretty_name grade_name -column_spec "varchar(100)" - content::type::attribute::new -content_type evaluation_grades -attribute_name grade_plural_name -datatype string -pretty_name grade_plural_name -column_spec "varchar(100)" - content::type::attribute::new -content_type evaluation_grades -attribute_name comments -datatype string -pretty_name Comments -column_spec "varchar(500)" - content::type::attribute::new -content_type evaluation_grades -attribute_name weight -datatype number -pretty_name Weight -column_spec numeric + # Create content type attributes for content type evaluation_grades + content::type::attribute::new -content_type evaluation_grades -attribute_name grade_item_id -datatype number -pretty_name grade_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_grades -attribute_name grade_name -datatype string -pretty_name grade_name -column_spec "varchar(100)" + content::type::attribute::new -content_type evaluation_grades -attribute_name grade_plural_name -datatype string -pretty_name grade_plural_name -column_spec "varchar(100)" + content::type::attribute::new -content_type evaluation_grades -attribute_name comments -datatype string -pretty_name Comments -column_spec "varchar(500)" + content::type::attribute::new -content_type evaluation_grades -attribute_name weight -datatype number -pretty_name Weight -column_spec numeric - # Create content type attributes for content type evaluation_tasks - content::type::attribute::new -content_type evaluation_tasks -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_tasks -attribute_name task_name -datatype string -pretty_name task_name -column_spec varchar - content::type::attribute::new -content_type evaluation_tasks -attribute_name number_of_members -datatype number -pretty_name number_of_members -column_spec integer - content::type::attribute::new -content_type evaluation_tasks -attribute_name due_date -datatype timestamp -pretty_name due_date -column_spec timestamptz - content::type::attribute::new -content_type evaluation_tasks -attribute_name grade_item_id -datatype number -pretty_name grade_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_tasks -attribute_name weight -datatype number -pretty_name weight -column_spec numeric - content::type::attribute::new -content_type evaluation_tasks -attribute_name online_p -datatype boolean -pretty_name online_p -column_spec "varchar(1)" - content::type::attribute::new -content_type evaluation_tasks -attribute_name late_submit_p -datatype boolean -pretty_name late_submit_p -column_spec "varchar(1)" - content::type::attribute::new -content_type evaluation_tasks -attribute_name requires_grade_p -datatype boolean -pretty_name requires_grade_p -column_spec "varchar(1)" - content::type::attribute::new -content_type evaluation_tasks -attribute_name points -datatype number -pretty_name points -column_spec "numeric" - content::type::attribute::new -content_type evaluation_tasks -attribute_name perfect_score -datatype number -pretty_name perfect_score -column_spec "numeric" - content::type::attribute::new -content_type evaluation_tasks -attribute_name relative_weight -datatype number -pretty_name relative_weight -column_spec "numeric" - content::type::attribute::new -content_type evaluation_tasks -attribute_name forums_related_p -datatype boolean -pretty_name forums_related_p -column_spec "varchar(1)" + # Create content type attributes for content type evaluation_tasks + content::type::attribute::new -content_type evaluation_tasks -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_tasks -attribute_name task_name -datatype string -pretty_name task_name -column_spec varchar + content::type::attribute::new -content_type evaluation_tasks -attribute_name number_of_members -datatype number -pretty_name number_of_members -column_spec integer + content::type::attribute::new -content_type evaluation_tasks -attribute_name due_date -datatype timestamp -pretty_name due_date -column_spec timestamptz + content::type::attribute::new -content_type evaluation_tasks -attribute_name grade_item_id -datatype number -pretty_name grade_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_tasks -attribute_name weight -datatype number -pretty_name weight -column_spec numeric + content::type::attribute::new -content_type evaluation_tasks -attribute_name online_p -datatype boolean -pretty_name online_p -column_spec "varchar(1)" + content::type::attribute::new -content_type evaluation_tasks -attribute_name late_submit_p -datatype boolean -pretty_name late_submit_p -column_spec "varchar(1)" + content::type::attribute::new -content_type evaluation_tasks -attribute_name requires_grade_p -datatype boolean -pretty_name requires_grade_p -column_spec "varchar(1)" + content::type::attribute::new -content_type evaluation_tasks -attribute_name points -datatype number -pretty_name points -column_spec "numeric" + content::type::attribute::new -content_type evaluation_tasks -attribute_name perfect_score -datatype number -pretty_name perfect_score -column_spec "numeric" + content::type::attribute::new -content_type evaluation_tasks -attribute_name relative_weight -datatype number -pretty_name relative_weight -column_spec "numeric" + content::type::attribute::new -content_type evaluation_tasks -attribute_name forums_related_p -datatype boolean -pretty_name forums_related_p -column_spec "varchar(1)" - # Create content type attributes for content type evaluation_tasks_sols - content::type::attribute::new -content_type evaluation_tasks_sols -attribute_name solution_item_id -datatype number -pretty_name solution_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_tasks_sols -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer + # Create content type attributes for content type evaluation_tasks_sols + content::type::attribute::new -content_type evaluation_tasks_sols -attribute_name solution_item_id -datatype number -pretty_name solution_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_tasks_sols -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer - # Create content type attributes for content type evaluation_answers - content::type::attribute::new -content_type evaluation_answers -attribute_name answer_item_id -datatype number -pretty_name answer_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_answers -attribute_name party_id -datatype number -pretty_name party_id -column_spec integer - content::type::attribute::new -content_type evaluation_answers -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_answers -attribute_name comments -datatype string -pretty_name comments -column_spec text + # Create content type attributes for content type evaluation_answers + content::type::attribute::new -content_type evaluation_answers -attribute_name answer_item_id -datatype number -pretty_name answer_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_answers -attribute_name party_id -datatype number -pretty_name party_id -column_spec integer + content::type::attribute::new -content_type evaluation_answers -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_answers -attribute_name comments -datatype string -pretty_name comments -column_spec text - # Create content type attributes for content type evaluation_student_evals - content::type::attribute::new -content_type evaluation_student_evals -attribute_name evaluation_item_id -datatype number -pretty_name evaluation_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_student_evals -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_student_evals -attribute_name party_id -datatype number -pretty_name party_id -column_spec integer - content::type::attribute::new -content_type evaluation_student_evals -attribute_name grade -datatype number -pretty_name grade -column_spec numeric - content::type::attribute::new -content_type evaluation_student_evals -attribute_name show_student_p -datatype boolean -pretty_name show_student_p -column_spec "varchar(1)" + # Create content type attributes for content type evaluation_student_evals + content::type::attribute::new -content_type evaluation_student_evals -attribute_name evaluation_item_id -datatype number -pretty_name evaluation_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_student_evals -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_student_evals -attribute_name party_id -datatype number -pretty_name party_id -column_spec integer + content::type::attribute::new -content_type evaluation_student_evals -attribute_name grade -datatype number -pretty_name grade -column_spec numeric + content::type::attribute::new -content_type evaluation_student_evals -attribute_name show_student_p -datatype boolean -pretty_name show_student_p -column_spec "varchar(1)" - # Create content type attributes for content type evaluation_grades_sheets - content::type::attribute::new -content_type evaluation_grades_sheets -attribute_name grades_sheet_item_id -datatype number -pretty_name grades_sheet_item_id -column_spec integer - content::type::attribute::new -content_type evaluation_grades_sheets -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer + # Create content type attributes for content type evaluation_grades_sheets + content::type::attribute::new -content_type evaluation_grades_sheets -attribute_name grades_sheet_item_id -datatype number -pretty_name grades_sheet_item_id -column_spec integer + content::type::attribute::new -content_type evaluation_grades_sheets -attribute_name task_item_id -datatype number -pretty_name task_item_id -column_spec integer } } -ad_proc -public evaluation::apm::package_before_upgrade { +ad_proc -private evaluation::apm::package_before_upgrade { -from_version_name:required -to_version_name:required } { @@ -187,11 +185,8 @@ } } -ad_proc -public evaluation::apm::package_uninstall { -} { - +ad_proc -private evaluation::apm::package_uninstall {} { Cleans the integration with the notifications package. - } { db_transaction { # Delete the type_id for a specific assignment @@ -204,58 +199,58 @@ notification::type::delete -short_name one_evaluation_notif # Delete the implementation for the notification of an evaluation - delete_one_evaluation_impl + delete_one_evaluation_impl - # Delete content type attributes - content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_item_id - content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_name - content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_plural_name - content::type::attribute::delete -content_type evaluation_grades -attribute_name comments - content::type::attribute::delete -content_type evaluation_grades -attribute_name weight - content::type::attribute::delete -content_type evaluation_tasks -attribute_name task_item_id - content::type::attribute::delete -content_type evaluation_tasks -attribute_name task_name - content::type::attribute::delete -content_type evaluation_tasks -attribute_name number_of_members - content::type::attribute::delete -content_type evaluation_tasks -attribute_name due_date - content::type::attribute::delete -content_type evaluation_tasks -attribute_name grade_item_id - content::type::attribute::delete -content_type evaluation_tasks -attribute_name weight - content::type::attribute::delete -content_type evaluation_tasks -attribute_name online_p - content::type::attribute::delete -content_type evaluation_tasks -attribute_name late_submit_p - content::type::attribute::delete -content_type evaluation_tasks -attribute_name requires_grade_p - content::type::attribute::delete -content_type evaluation_tasks_sols -attribute_name solution_item_id - content::type::attribute::delete -content_type evaluation_tasks_sols -attribute_name task_item_id - content::type::attribute::delete -content_type evaluation_answers -attribute_name answer_item_id - content::type::attribute::delete -content_type evaluation_answers -attribute_name party_id - content::type::attribute::delete -content_type evaluation_answers -attribute_name task_item_id - content::type::attribute::delete -content_type evaluation_answers -attribute_name comments - content::type::attribute::delete -content_type evaluation_student_evals -attribute_name evaluation_item_id - content::type::attribute::delete -content_type evaluation_student_evals -attribute_name task_item_id - content::type::attribute::delete -content_type evaluation_student_evals -attribute_name party_id - content::type::attribute::delete -content_type evaluation_student_evals -attribute_name grade - content::type::attribute::delete -content_type evaluation_student_evals -attribute_name show_student_p - content::type::attribute::delete -content_type evaluation_grades_sheets -attribute_name grades_sheet_item_id - content::type::attribute::delete -content_type evaluation_grades_sheets -attribute_name task_item_id + # Delete content type attributes + content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_item_id + content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_name + content::type::attribute::delete -content_type evaluation_grades -attribute_name grade_plural_name + content::type::attribute::delete -content_type evaluation_grades -attribute_name comments + content::type::attribute::delete -content_type evaluation_grades -attribute_name weight + content::type::attribute::delete -content_type evaluation_tasks -attribute_name task_item_id + content::type::attribute::delete -content_type evaluation_tasks -attribute_name task_name + content::type::attribute::delete -content_type evaluation_tasks -attribute_name number_of_members + content::type::attribute::delete -content_type evaluation_tasks -attribute_name due_date + content::type::attribute::delete -content_type evaluation_tasks -attribute_name grade_item_id + content::type::attribute::delete -content_type evaluation_tasks -attribute_name weight + content::type::attribute::delete -content_type evaluation_tasks -attribute_name online_p + content::type::attribute::delete -content_type evaluation_tasks -attribute_name late_submit_p + content::type::attribute::delete -content_type evaluation_tasks -attribute_name requires_grade_p + content::type::attribute::delete -content_type evaluation_tasks_sols -attribute_name solution_item_id + content::type::attribute::delete -content_type evaluation_tasks_sols -attribute_name task_item_id + content::type::attribute::delete -content_type evaluation_answers -attribute_name answer_item_id + content::type::attribute::delete -content_type evaluation_answers -attribute_name party_id + content::type::attribute::delete -content_type evaluation_answers -attribute_name task_item_id + content::type::attribute::delete -content_type evaluation_answers -attribute_name comments + content::type::attribute::delete -content_type evaluation_student_evals -attribute_name evaluation_item_id + content::type::attribute::delete -content_type evaluation_student_evals -attribute_name task_item_id + content::type::attribute::delete -content_type evaluation_student_evals -attribute_name party_id + content::type::attribute::delete -content_type evaluation_student_evals -attribute_name grade + content::type::attribute::delete -content_type evaluation_student_evals -attribute_name show_student_p + content::type::attribute::delete -content_type evaluation_grades_sheets -attribute_name grades_sheet_item_id + content::type::attribute::delete -content_type evaluation_grades_sheets -attribute_name task_item_id - # Delete content type templates - set template_id [content::type::get_template -content_type evaluation_tasks -use_context public] - content::type::unregister_template -content_type evaluation_tasks -template_id $template_id -use_context public - set template_id [content::type::get_template -content_type evaluation_tasks_sols -use_context public] - content::type::unregister_template -content_type evaluation_tasks_sols -template_id $template_id -use_context public - set template_id [content::type::get_template -content_type evaluation_answers -use_context public] - content::type::unregister_template -content_type evaluation_answers -template_id $template_id -use_context public - set template_id [content::type::get_template -content_type evaluation_grades_sheets -use_context public] - content::type::unregister_template -content_type evaluation_grades_sheets -template_id $template_id -use_context public + # Delete content type templates + set template_id [content::type::get_template -content_type evaluation_tasks -use_context public] + content::type::unregister_template -content_type evaluation_tasks -template_id $template_id -use_context public + set template_id [content::type::get_template -content_type evaluation_tasks_sols -use_context public] + content::type::unregister_template -content_type evaluation_tasks_sols -template_id $template_id -use_context public + set template_id [content::type::get_template -content_type evaluation_answers -use_context public] + content::type::unregister_template -content_type evaluation_answers -template_id $template_id -use_context public + set template_id [content::type::get_template -content_type evaluation_grades_sheets -use_context public] + content::type::unregister_template -content_type evaluation_grades_sheets -template_id $template_id -use_context public - # Delete Content types - content::type::delete -content_type evaluation_grades - content::type::delete -content_type evaluation_tasks - content::type::delete -content_type evaluation_tasks_sols - content::type::delete -content_type evaluation_answers - content::type::delete -content_type evaluation_student_evals - content::type::delete -content_type evaluation_grades_sheets + # Delete Content types + content::type::delete -content_type evaluation_grades + content::type::delete -content_type evaluation_tasks + content::type::delete -content_type evaluation_tasks_sols + content::type::delete -content_type evaluation_answers + content::type::delete -content_type evaluation_student_evals + content::type::delete -content_type evaluation_grades_sheets } } -ad_proc -public evaluation::apm::package_instantiate { +ad_proc -private evaluation::apm::package_instantiate { -package_id:required } { @@ -276,23 +271,23 @@ set projects_desc "\#evaluation.lt_Projects_for_students\#" db_transaction { - set folder_id [content::folder::new -name "evaluation_grades_$package_id" -label "evaluation_grades_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_grades -include_subtypes t + set folder_id [content::folder::new -name "evaluation_grades_$package_id" -label "evaluation_grades_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_grades -include_subtypes t - set folder_id [content::folder::new -name "evaluation_tasks_$package_id" -label "evaluation_tasks_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_tasks -include_subtypes t + set folder_id [content::folder::new -name "evaluation_tasks_$package_id" -label "evaluation_tasks_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_tasks -include_subtypes t - set folder_id [content::folder::new -name "evaluation_tasks_sols_$package_id" -label "evaluation_tasks_sols_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_tasks_sols -include_subtypes t + set folder_id [content::folder::new -name "evaluation_tasks_sols_$package_id" -label "evaluation_tasks_sols_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_tasks_sols -include_subtypes t - set folder_id [content::folder::new -name "evaluation_answers_$package_id" -label "evaluation_answers_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_answers -include_subtypes t + set folder_id [content::folder::new -name "evaluation_answers_$package_id" -label "evaluation_answers_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_answers -include_subtypes t - set folder_id [content::folder::new -name "evaluation_grades_sheets_$package_id" -label "evaluation_grades_sheets_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_grades_sheets -include_subtypes t + set folder_id [content::folder::new -name "evaluation_grades_sheets_$package_id" -label "evaluation_grades_sheets_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_grades_sheets -include_subtypes t - set folder_id [content::folder::new -name "evaluation_student_evals_$package_id" -label "evaluation_student_evals_$package_id" -package_id $package_id ] - content::folder::register_content_type -folder_id $folder_id -content_type evaluation_student_evals -include_subtypes t + set folder_id [content::folder::new -name "evaluation_student_evals_$package_id" -label "evaluation_student_evals_$package_id" -package_id $package_id ] + content::folder::register_content_type -folder_id $folder_id -content_type evaluation_student_evals -include_subtypes t } set exams_item_id [db_nextval acs_object_id_seq] @@ -309,7 +304,7 @@ } -ad_proc -public evaluation::apm::package_uninstantiate { +ad_proc -private evaluation::apm::package_uninstantiate { -package_id:required } { @@ -318,59 +313,59 @@ } { # Delete all content templates db_foreach answer { - select ea.answer_id from evaluation_answersi ea, acs_objects ao where ea.item_id = ao.object_id and ao.context_id = :package_id + select ea.answer_id from evaluation_answersi ea, acs_objects ao where ea.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $answer_id + content::revision::delete -revision_id $answer_id } db_foreach solution { - select ets.solution_id from evaluation_tasks_solsi ets, acs_objects ao where ets.item_id = ao.object_id and ao.context_id = :package_id + select ets.solution_id from evaluation_tasks_solsi ets, acs_objects ao where ets.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $solution_id + content::revision::delete -revision_id $solution_id } db_foreach grades_sheet { - select egs.grades_sheet_id from evaluation_grades_sheetsi egs, acs_objects ao where egs.item_id = ao.object_id and ao.context_id = :package_id + select egs.grades_sheet_id from evaluation_grades_sheetsi egs, acs_objects ao where egs.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $grades_sheet_id + content::revision::delete -revision_id $grades_sheet_id } db_foreach student_eval { - select ese.evaluation_id from evaluation_student_evalsi ese, acs_objects ao where ese.item_id = ao.object_id and ao.context_id = :package_id + select ese.evaluation_id from evaluation_student_evalsi ese, acs_objects ao where ese.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $evaluation_id + content::revision::delete -revision_id $evaluation_id } db_foreach evaluation_task { - select et.task_id from evaluation_tasksi et, acs_objects ao where et.item_id = ao.object_id and ao.context_id = :package_id + select et.task_id from evaluation_tasksi et, acs_objects ao where et.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $task_id + content::revision::delete -revision_id $task_id } db_foreach evaluation_grade { - select e.g.grade_id from evaluation_gradesi eg, acs_objects ao where e.g.item_id = ao.object_id and ao.context_id = :package_id + select e.g.grade_id from evaluation_gradesi eg, acs_objects ao where e.g.item_id = ao.object_id and ao.context_id = :package_id } { - content::revision::delete -revision_id $grade_id + content::revision::delete -revision_id $grade_id } # evaluation_task_sols - set folder_id [content::item::get_id -item_path "evaluation_tasks_sols_$package_id" -resolve_index f] - db_foreach task_sol_item { - select item_id from cr_items where parent_id = :folder_id - } { - content::item::delete -item_id $item_id - } - content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t - content::folder::unregister_content_type -folder_id $folder_id -content_type evaluation_tasks_sols -include_subtypes t - db_dml delete_task_sols_folder_map "delete from cr_folder_type_map where content_type = 'evaluation_tasks_sols'" - content::folder::delete -folder_id $folder_id + set folder_id [content::item::get_id -item_path "evaluation_tasks_sols_$package_id" -resolve_index f] + db_foreach task_sol_item { + select item_id from cr_items where parent_id = :folder_id + } { + content::item::delete -item_id $item_id + } + content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t + content::folder::unregister_content_type -folder_id $folder_id -content_type evaluation_tasks_sols -include_subtypes t + db_dml delete_task_sols_folder_map "delete from cr_folder_type_map where content_type = 'evaluation_tasks_sols'" + content::folder::delete -folder_id $folder_id # evaluation_answers set folder_id [content::item::get_id -item_path "evaluation_answers_$package_id" -resolve_index f] db_foreach answer_item { - select item_id from cr_items where parent_id = :folder_id + select item_id from cr_items where parent_id = :folder_id } { - content::item::delete -item_id $item_id + content::item::delete -item_id $item_id } content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t @@ -382,12 +377,12 @@ set folder_id [content::item::get_id -item_path "evaluation_student_evals_$package_id" -resolve_index f] db_foreach student_eval_item { - select cri.revision_id as evaluation_id - from cr_revisions cri, cr_items cr - where cr.item_id = cri.item_id - and cr.parent_id = :folder_id + select cri.revision_id as evaluation_id + from cr_revisions cri, cr_items cr + where cr.item_id = cri.item_id + and cr.parent_id = :folder_id } { - evaluation::delete_student_eval -evaluation_id $evaluation_id + evaluation::delete_student_eval -evaluation_id $evaluation_id } content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t content::folder::unregister_content_type -folder_id $folder_id -content_type evaluation_student_evals -include_subtypes t @@ -396,22 +391,22 @@ content::folder::delete -folder_id $folder_id - # evalution_task_groups - db_foreach delete_evaluation_groups { - select group_id from groups, acs_objects - where group_id = object_id - and context_id = :package_id - } { - evaluation::delete_evaluation_group -group_id $group_id - } + # evalution_task_groups + db_foreach delete_evaluation_groups { + select group_id from groups, acs_objects + where group_id = object_id + and context_id = :package_id + } { + evaluation::delete_evaluation_group -group_id $group_id + } #evaluation_grades_sheets set folder_id [content::item::get_id -item_path "evaluation_grades_sheets_$package_id" -resolve_index f] db_foreach grade_sheet_item { - select item_id from cr_items where parent_id = :folder_id + select item_id from cr_items where parent_id = :folder_id } { - content::item::delete -item_id $item_id + content::item::delete -item_id $item_id } content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t @@ -424,19 +419,19 @@ set folder_id [content::item::get_id -item_path "evaluation_tasks_$package_id" -resolve_index f] db_foreach task_revision { - select cri.revision_id as task_id, cri.item_id as task_item_id - from cr_revisions cri, cr_items cr - where cr.item_id = cri.item_id - and cr.parent_id = :folder_id + select cri.revision_id as task_id, cri.item_id as task_item_id + from cr_revisions cri, cr_items cr + where cr.item_id = cri.item_id + and cr.parent_id = :folder_id } { - if { [db_0or1row cal_map { select cal_item_id from evaluation_cal_task_map where task_item_id = :task_item_id }] } { - db_dml delete_cal_mappings { - delete from evaluation_cal_task_map where cal_item_id = :cal_item_id - } - calendar::item::delete -cal_item_id $cal_item_id - } + if { [db_0or1row cal_map { select cal_item_id from evaluation_cal_task_map where task_item_id = :task_item_id }] } { + db_dml delete_cal_mappings { + delete from evaluation_cal_task_map where cal_item_id = :cal_item_id + } + calendar::item::delete -cal_item_id $cal_item_id + } - evaluation::delete_task -task_id $item_id + evaluation::delete_task -task_id $item_id } content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t @@ -449,12 +444,12 @@ set folder_id [content::item::get_id -item_path "evaluation_grades_$package_id" -resolve_index f] db_foreach grade_item { - select cri.revision_id as grade_id - from cr_revisions cri, cr_items cr - where cr.item_id = cri.item_id - and cr.parent_id = :folder_id + select cri.revision_id as grade_id + from cr_revisions cri, cr_items cr + where cr.item_id = cri.item_id + and cr.parent_id = :folder_id } { - evaluation::delete_grade -grade_id $grade_id + evaluation::delete_grade -grade_id $grade_id } content::folder::unregister_content_type -folder_id $folder_id -content_type content_revision -include_subtypes t @@ -463,40 +458,37 @@ db_dml delete_grade_folder_map "delete from cr_folder_type_map where content_type = 'evaluation_grades'" content::folder::delete -folder_id $folder_id - # - # delete the rest of the content - # - db_foreach delete_items { - select cri.item_id - from cr_items cri, acs_objects ao - where cri.item_id = ao.object_id - and ao.context_id = :package_id - } { - if { [db_0or1row cal_map { select cal_item_id from evaluation_cal_task_map where task_item_id = :item_id }] } { - db_dml delete_cal_mappings { - delete from evaluation_cal_task_map where cal_item_id = :cal_item_id - } - calendar::item::delete -cal_item_id $cal_item_id - } - content::item::delete -item_id $item_id - } + # + # delete the rest of the content + # + db_foreach delete_items { + select cri.item_id + from cr_items cri, acs_objects ao + where cri.item_id = ao.object_id + and ao.context_id = :package_id + } { + if { [db_0or1row cal_map { select cal_item_id from evaluation_cal_task_map where task_item_id = :item_id }] } { + db_dml delete_cal_mappings { + delete from evaluation_cal_task_map where cal_item_id = :cal_item_id + } + calendar::item::delete -cal_item_id $cal_item_id + } + content::item::delete -item_id $item_id + } - db_foreach delete_acs_rels { - select rel_id from acs_rels, acs_objects - where rel_id = object_id - and context_id = :package_id - } { - relation_remove $rel_id - } + db_foreach delete_acs_rels { + select rel_id from acs_rels, acs_objects + where rel_id = object_id + and context_id = :package_id + } { + relation_remove $rel_id + } } -ad_proc -public evaluation::apm::after_upgrade { +ad_proc -private evaluation::apm::after_upgrade { {-from_version_name:required} {-to_version_name:required} } { - - -} { apm_upgrade_logic \ -from_version_name $from_version_name \ -to_version_name $to_version_name \