Index: openacs-4/packages/rules/www/delete-single-rule.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/delete-single-rule.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/delete-single-rule.tcl 20 Dec 2004 19:51:59 -0000 1.1 @@ -0,0 +1,20 @@ +ad_page_contract { + Delete rules +} { + rule_def_id:integer,notnull,multiple + rule_id:integer,notnull + return_url +} + permission::require_permission -object_id $rule_id -privilege "admin" + set rules_count [llength $rule_def_id] + for { set i 0} { $i < $rules_count } { incr i } { + + rules::rule::delete_trigger -rule_def_id [lindex $rule_def_id $i] + db_dml delete_rule { delete from rules_actions where rule_id=:rule_id} + } + + ad_returnredirect "$return_url?rule_id=$rule_id" + + + + Index: openacs-4/packages/rules/www/single-rule-add-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule-add-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule-add-oracle.xql 20 Dec 2004 19:42:04 -0000 1.1 @@ -0,0 +1,83 @@ + + + oracle8.1.6 + + + select sysdate from dual + + + + + select community_id,pretty_name from dotlrn_communities_all + + + + + + select + ra.rule_id,ra.group_id,ra.notify_p,ra.active_p,ra.rule_action_id,ra.action_type, (select pretty_name from dotlrn_communities_all where + community_id=ra.group_id) as name + from rules r,rules_actions ra + where ra.rule_id=r.rule_id and ra.rule_id=:rule_id + + + + + select sq.question_id as qs_id, sq.question_text as description + from survey_questions sq where sq.section_id in (select section_id from survey_sections where + survey_id = (select asm_id as survey_id from rules where rule_id=:rule_id)) and (select + count(choice_id) from survey_question_choices where question_id = sq.question_id) > 0 + + + + + + select choice_id as result_id, label as value + from survey_question_choices + where question_id = :s_qs + + + + + select action_seq.nextval from dual + + + + + select trigger_seq.nextval from dual + + + + + + insert into rules_actions + (rule_action_id,action_type,group_id,notify_p,active_p,rule_id) values (:rule_action_id,:action_type,:group_id,'y',:active_p,:rule_id) + + + + + insert into rules_triggers (rule_def_id,qs_id,result_id,active_p,rule_id) + values (:rule_def_id,:qs_id,:result_id,:active_p,:rule_id) + + + + + select * from rules_actions ra,rules_triggers rt where + ra.rule_id=rt.rule_id and ra.rule_id=:rule_id and rt.rule_def_id=:rule_def_id + + + + + update rules_actions set group_id=:group_id, active_p=:active_p, + action_type=:action_type where rule_id=:rule_id + + + + + update rules_triggers set qs_id=:qs_id, active_p=:active_p, + result_id=:result_id where rule_def_id=:id + + + + + \ No newline at end of file Index: openacs-4/packages/rules/www/single-rule-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule-add.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule-add.adp 20 Dec 2004 19:42:04 -0000 1.1 @@ -0,0 +1,70 @@ + +@context@ +Single Rules Properties + +
+

@rule_name@

+Related Questionnarie: @assessment_related@ +
+State:@state@ +
+
+
+ + + + + +
+ + Add Notification for this Rule + Waiting List +
+
+
+ + + + + + + + + + + +
Question +Answer +Action +Result +Active +
+ + + + + + + + + +
+
+
+ +
+
+ Index: openacs-4/packages/rules/www/single-rule-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule-add.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule-add.tcl 20 Dec 2004 19:42:04 -0000 1.1 @@ -0,0 +1,145 @@ +ad_page_contract { + + @author Anny Flores (annyflores@viaro.net) + @creation_date 2004-12-03 + + Display of rules + +} { + rule_def_id:optional + rule_id:notnull + s_qs:optional + s_answer:optional + s_active:optional + s_group:optional + s_action:optional +} + +set default_action 1 +set default_active "y" +set default_group "-1" +set default_answer 0 +set exp_trigger "" +set context [list "Single Rule Properties"] +set questions [list] +set results [list] +set communities [list] +set count 0 +set id "" +set mode "" + +if { [exists_and_not_null rule_def_id] } { + set exp_trigger "&rule_def_id=$rule_def_id" + set mode "edit" + set id $rule_def_id +} else { + set mode "new" +} + +db_foreach communities { *SQL* } { + lappend communities [list $pretty_name $community_id] +} + lappend communities [list "to website" -1] + + +set actions { {"Add Automatically" 1} {"Add to waiting list " 2}} + +db_foreach questions { *SQL* } { + incr count + if { $count == 1 && ![exists_and_not_null s_qs]} { + set s_qs $qs_id + } + set question [list $description $qs_id] + lappend questions $question +} +if { $count == 0 } { + set s_qs 0 +} + +db_foreach results { *SQL* } { + lappend results [list $value $result_id] +} +if { [exists_and_not_null s_action]} { + set default_answer $s_action +} + + +if { [exists_and_not_null s_answer]} { + set default_answer $s_answer +} +if { [exists_and_not_null s_active]} { + set default_active $s_active +} +if { [exists_and_not_null s_action]} { + set default_action $s_action +} +if { [exists_and_not_null s_group]} { + set default_group $s_group +} +set rule_name [db_string rule_name {select rule_name from rules where rule_id=:rule_id}] +set assessment_related [db_string asm { select name from surveys where survey_id = (select asm_id from rules where rule_id=:rule_id)}] +set state [db_string active_p {select active_p from rules where rule_id=:rule_id}] + +if { $state == "y"} { + set state "Active" +} else { + set state "Not Active" +} + +set type_id [notification::type::get_type_id -short_name rule_notif] + + +ad_form -name add_trigger -export { id mode } -form { + { rule_id:text(hidden) + {value $rule_id} + } + + { qs_id:text(select) + {label ""} + {options $questions} + {value $s_qs} + {html { onChange go()}} + } + {result_id:text(select) + {label ""} + {options $results} + {value $default_answer} + } + {active_p:text(select) + {label ""} + {options {{Yes y} { No n}}} + {value $default_active} + } + {action_type:text(select) + {label ""} + {options $actions} + {value $default_action} + } + {group_id:text(select) + {label ""} + {options $communities} + {value $default_group} + } + {submit:text(submit) + {label " Submit "} + } +} -on_submit { +if { $mode == "new"} { + set rule_action_id [db_string next_action { *SQL* }] + set rule_def_id [db_string next_trigger { *SQL* }] + set id $rule_def_id + + db_dml insert_action { *SQL* } + db_dml insert_trigger { *SQL* } +} else { + db_dml update_action { *SQL* } + db_dml update_trigger { *SQL* } +} +} -after_submit { + ad_returnredirect "single-rule?rule_id=$rule_id" +} + + + + + Index: openacs-4/packages/rules/www/single-rule-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule-oracle.xql 20 Dec 2004 19:47:42 -0000 1.1 @@ -0,0 +1,53 @@ + + + oracle8.1.6 + + + select r.rule_id, r.rule_name, rt.result_id, rt.qs_id, + rt.rule_def_id, rt.active_p,r.asm_id,q.question_text as + description, (select label value from survey_question_choices + where question_id=rt.qs_id and choice_id=rt.result_id) as + value,ra.rule_id,ra.group_id,ra.notify_p,ra.active_p,ra.rule_action_id, + ra.action_type, (select pretty_name from dotlrn_communities_all where + community_id=ra.group_id) as name + from rules r,rules_triggers rt,rules_actions ra,survey_questions q,survey_sections ss + where rt.rule_id=r.rule_id and rt.rule_id=:rule_id + and q.question_id = rt.qs_id and ss.survey_id = r.asm_id and + ss.section_id = q.section_id and ra.rule_id=r.rule_id and + ra.rule_id=:rule_id and rt.rule_id=ra.rule_id + + + + + select + ra.rule_id,ra.group_id,ra.notify_p,ra.active_p,ra.rule_action_id,ra.action_type, (select pretty_name from dotlrn_communities_all where + community_id=ra.group_id) as name + from rules r,rules_actions ra + where ra.rule_id=r.rule_id and ra.rule_id=:rule_id + + + + + select sq.question_id as qs_id, sq.question_text as description + from survey_questions sq + where sq.section_id = (select section_id from survey_sections where + survey_id=(select asm_id from rules where rule_id=:rule_id)) and sq.question_id not + in (select qs_id from rules_triggers where rule_id=:rule_id) and (select + count(choice_id) from survey_question_choices where question_id = + sq.question_id) > 0 + + + + + + + select choice_id as result_id, label as value + from survey_question_choices + where question_id = :selected_qs + + + + + + + \ No newline at end of file Index: openacs-4/packages/rules/www/single-rule.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule.adp 20 Dec 2004 19:47:42 -0000 1.1 @@ -0,0 +1,30 @@ + +@context@ +Rules Properties + + +
+

@rule_name@

+Related Questionnarie: @assessment_related@ +
+State:@state@ +
+
+
+ + + + + + + +
+ Add Notification for this Rule + Waiting List + +
+ + +
Index: openacs-4/packages/rules/www/single-rule.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/rules/www/Attic/single-rule.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/rules/www/single-rule.tcl 20 Dec 2004 19:47:42 -0000 1.1 @@ -0,0 +1,104 @@ +ad_page_contract { + + @author Anny Flores (annyflores@viaro.net) + @creation_date 2004-12-03 + + Display of rules + +} { + rule_id:notnull + qs:optional + trigger:optional +} +permission::require_permission -object_id $rule_id -privilege "admin" +set counter [db_string question { select count(rule_def_id) from rules_triggers where rule_id=:rule_id}] + + +if { $counter == 0 } { + ad_returnredirect "single-rule-add?rule_id=$rule_id" +} + +set context [list "Rule Properties"] +set qs_id_2 0 +if { ![exists_and_not_null qs]} { + set qs "" +} +if { ![exists_and_not_null trigger]} { + set trigger "" +} + +set rule_name [db_string rule_name {select rule_name from rules where rule_id=:rule_id}] +set assessment_related [db_string asm { select name from surveys where survey_id = (select asm_id from rules where rule_id=:rule_id)}] +set state [db_string active_p {select active_p from rules where rule_id=:rule_id}] + +if { $state == "y"} { + set state "Active" +} else { + set state "Not Active" +} + +set type_id [notification::type::get_type_id -short_name rule_notif] +template::list::create -name triggers\ +-multirow rule_triggers\ +-key rule_def_id\ +-no_data "There are no triggers "\ +-row_pretty_plural "triggers"\ +-elements { + rule_def_id { + display_template { + + + } + } + qs_id { + label "Question" + display_col description + + } + result_id { + label "Answer" + display_col value + + } + active_p { + label "Active" + display_template { + + Yes + + + No + + } + } + action_type { + label "Action" + display_template { + + Add Automatically + + + Add to waiting list + + } + + + } + group_id { + label "Result" + display_template { + + to website + + + @rule_triggers.name@ + + } + + } + +} +db_multirow rule_triggers get_triggers { *SQL* } + + +