Index: openacs-4/packages/evaluation/evaluation.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/evaluation.info,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/evaluation/evaluation.info 22 May 2004 01:20:24 -0000 1.6 +++ openacs-4/packages/evaluation/evaluation.info 31 May 2004 17:04:57 -0000 1.7 @@ -16,9 +16,8 @@ - + - Index: openacs-4/packages/evaluation/lib/evaluations-chunk-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/lib/Attic/evaluations-chunk-postgresql.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/lib/evaluations-chunk-postgresql.xql 28 Apr 2004 11:06:40 -0000 1.1 +++ openacs-4/packages/evaluation/lib/evaluations-chunk-postgresql.xql 31 May 2004 17:04:57 -0000 1.2 @@ -11,7 +11,7 @@ from evaluation_tasksi et where grade_id = :grade_id and content_revision__is_live(et.task_id) = true - $orderby + $evaluations_orderby @@ -22,10 +22,11 @@ select et.task_name, ese.grade, ese.description as comments, + ese.show_student_p, (et.weight*eg.weight)/100 as task_weight, - (ese.grade*et.weight*eg.weight)/10000 as task_grade, + (ese.grade*et.weight*eg.weight)/10000 as task_grade, et.number_of_members, - et.task_id, + et.task_id, ea.data as answer_data, ea.title as answer_title, ea.answer_id @@ -36,10 +37,10 @@ and ea.party_id = evaluation__party_id(:user_id,et.task_id)) where eg.grade_id = :grade_id and eg.grade_id = et.grade_id - and et.task_id = et2.task_id + and et.task_id = et2.task_id and content_revision__is_live(et.task_id) = true and content_revision__is_live(eg.grade_id) = true - $orderby + $evaluations_orderby Index: openacs-4/packages/evaluation/lib/evaluations-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/lib/evaluations-chunk.adp,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/lib/evaluations-chunk.adp 28 Apr 2004 11:06:40 -0000 1.1 +++ openacs-4/packages/evaluation/lib/evaluations-chunk.adp 31 May 2004 17:04:57 -0000 1.2 @@ -1,4 +1,4 @@
-
@bottom_line;noquote@ +@bottom_line;noquote@
Index: openacs-4/packages/evaluation/lib/evaluations-chunk.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/lib/evaluations-chunk.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/lib/evaluations-chunk.tcl 28 Apr 2004 11:06:40 -0000 1.1 +++ openacs-4/packages/evaluation/lib/evaluations-chunk.tcl 31 May 2004 17:04:57 -0000 1.2 @@ -1,120 +1,134 @@ ad_page_contract { - evaluations chunk to be displayed in the index page + evaluations chunk to be displayed in the index page } set package_id [ad_conn package_id] set user_id [ad_verify_and_get_user_id] set admin_p [permission::permission_p -party_id $user_id -object_id $package_id -privilege admin] -#set admin_p 1 set base_url [ad_conn package_url] db_1row get_grade_info { *SQL* } set elements [list task_name \ - [list label "Name" \ - link_url_col task_url \ - orderby_asc {task_name asc} \ - orderby_desc {task_name desc}] \ - ] + [list label "Name" \ + link_url_col task_url \ + orderby_asc {task_name asc} \ + orderby_desc {task_name desc}] \ + ] if { $admin_p } { - #admin - lappend elements task_weight \ - [list label "Weight" \ - display_template {
@grade_tasks_admin.task_weight@%
} \ - orderby_asc {task_weight asc} \ - orderby_desc {task_weight desc}] - set multirow_name grade_tasks_admin - set actions [list "Edit grades distribution of $grade_name" [export_vars -base "${base_url}admin/grades/distribution-edit" { grade_id }]] + #admin + lappend elements task_weight \ + [list label "Weight" \ + display_template {
@grade_tasks_admin.task_weight@%
} \ + orderby_asc {task_weight asc} \ + orderby_desc {task_weight desc}] + set multirow_name grade_tasks_admin + set actions [list "Edit grades distribution of $grade_name" [export_vars -base "${base_url}admin/grades/distribution-edit" { grade_id }]] } else { - #student - lappend elements grade \ - [list label "Grade over 100" \ - display_template {
@grade_tasks.grade@
} \ - orderby_asc {grade asc} \ - orderby_desc {grade desc}] - lappend elements comments \ - [list label "Comments" \ - link_url_col comments_url \ - link_html { title "View evaluation comments" }] - lappend elements task_weight \ - [list label "Weight over 100%
of class grade" \ - display_template {
@grade_tasks.task_weight@%
} \ - orderby_asc {task_weight asc} \ - orderby_desc {task_weight desc}] - lappend elements answer \ - [list label "" \ - link_url_col answer_url \ - link_html { title "View my answer" }] - set multirow_name grade_tasks - set actions "" + #student + lappend elements grade \ + [list label "Grade over 100" \ + display_template {
@grade_tasks.grade@
} \ + orderby_asc {grade asc} \ + orderby_desc {grade desc}] + lappend elements comments \ + [list label "Comments" \ + link_url_col comments_url \ + link_html { title "View evaluation comments" }] + lappend elements task_weight \ + [list label "Net value" \ + display_template {
@grade_tasks.task_weight@
} \ + orderby_asc {task_weight asc} \ + orderby_desc {task_weight desc}] + lappend elements answer \ + [list label "" \ + link_url_col answer_url \ + link_html { title "View my answer" }] + set multirow_name grade_tasks + set actions "" } set total_grade 0.00 set max_grade 0.00 +set category_weight 0 template::list::create \ - -name grade_tasks \ - -multirow $multirow_name \ - -actions $actions \ - -key task_id \ - -pass_properties { return_url mode base_url } \ - -filters { grade_id } \ - -elements $elements + -name grade_tasks \ + -multirow $multirow_name \ + -actions $actions \ + -key task_id \ + -pass_properties { return_url mode base_url } \ + -filters { grade_id } \ + -elements $elements \ + -orderby { default_value task_name } \ + -orderby_name evaluations_orderby - -set orderby [template::list::orderby_clause -orderby -name grade_tasks] - -if { [string equal $orderby ""] } { - set orderby " order by task_name asc" -} +set evaluations_orderby [template::list::orderby_clause -orderby -name grade_tasks] -db_multirow -extend { task_url } grade_tasks_admin get_tasks_admin { *SQL* } { - set task_url [export_vars -base "${base_url}admin/evaluations/student-list" { task_id grade_id }] +if { [string equal $evaluations_orderby ""] } { + set evaluations_orderby " order by task_name asc" } -db_multirow -extend { comments comments_url answer answer_url } grade_tasks get_grade_tasks { *SQL* } { +if { $admin_p } { + + db_multirow -extend { task_url } grade_tasks_admin get_tasks_admin { *SQL* } { + set task_url [export_vars -base "${base_url}admin/evaluations/student-list" { task_id grade_id }] + set category_weight [expr $category_weight + $task_weight] + } +} else { + db_multirow -extend { comments comments_url answer answer_url } grade_tasks get_grade_tasks { *SQL* } { + if { ![empty_string_p $comments] } { - set comments "View comments" - set comments_url evaluation_view + set comments "View comments" + set comments_url evaluation_view } - - if { ![empty_string_p $grade] } { + + set over_weight "" + if { ![empty_string_p $show_student_p] && $show_student_p } { + + if { ![empty_string_p $grade] } { set grade [format %.2f $grade] + set over_weight "[format %.2f $task_grade] /" set total_grade [expr $total_grade + $task_grade] - } else { + } else { set grade "Not evaluated" + } + + set max_grade [expr $task_weight + $max_grade] + } else { + set grade "Not available" } - - set task_weight [format %.2f $task_weight] - set max_grade [expr $task_weight + $max_grade] - + set task_weight "$over_weight [format %.2f $task_weight]" + # working with answer stuff (if it has a file/url attached) if { [empty_string_p $answer_data] } { - set answer_url "" - set answer "" + set answer_url "" + set answer "" } elseif { [regexp "http://" $answer_data] } { - set answer_url "[export_vars -base "$answer_data" { }]" - set answer "View my answer" + set answer_url "[export_vars -base "$answer_data" { }]" + set answer "View my answer" } else { - # we assume it's a file - set answer_url "[export_vars -base "${base_url}view/$answer_title" { }]" - set answer "View my answer" + # we assume it's a file + set answer_url "[export_vars -base "${base_url}view/$answer_title" { }]" + set answer "View my answer" } if { $number_of_members > 1 && [string eq [db_string get_group_id { *SQL* }] 0] } { - set answer "" - set answer_url "" - set grade "No group for task" + set answer "" + set answer_url "" + set grade "No group for task" } -} + } +} if { $admin_p } { - set bottom_line "$grade_name represents $grade_weight % of the 100% of the class" + set bottom_line "Weight used in $grade_name: ${category_weight}% (of 100% of $grade_name)
+ $grade_name represents ${grade_weight}% of the 100% of the class
" } else { - set bottom_line "Total points in this category: $total_grade / $max_grade
- This grade category represents the $grade_weight% of the 100% of the class" + set bottom_line "Total points in this category: $total_grade / $max_grade
+ This grade category represents the ${grade_weight}% of the 100% of the class
" } Index: openacs-4/packages/evaluation/lib/tasks-chunk-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/lib/Attic/tasks-chunk-postgresql.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/lib/tasks-chunk-postgresql.xql 28 Apr 2004 11:06:40 -0000 1.1 +++ openacs-4/packages/evaluation/lib/tasks-chunk-postgresql.xql 31 May 2004 17:04:57 -0000 1.2 @@ -19,7 +19,7 @@ where cr.revision_id = et.revision_id and grade_id = :grade_id and content_revision__is_live(et.task_id) = true - $orderby + $assignments_orderby @@ -42,7 +42,7 @@ where cr.revision_id = et.revision_id and grade_id = :grade_id and content_revision__is_live(et.task_id) = true - $orderby + $assignments_orderby Index: openacs-4/packages/evaluation/lib/tasks-chunk.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/lib/tasks-chunk.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/lib/tasks-chunk.tcl 28 Apr 2004 11:06:40 -0000 1.1 +++ openacs-4/packages/evaluation/lib/tasks-chunk.tcl 31 May 2004 17:04:57 -0000 1.2 @@ -1,13 +1,12 @@ ad_page_contract { - task chunk to be displayed in the index page + task chunk to be displayed in the index page } set package_id [ad_conn package_id] set user_id [ad_verify_and_get_user_id] set admin_p [permission::permission_p -party_id $user_id -object_id $package_id -privilege admin] -# set admin_p 1 set grade_name [db_string grade_name { *SQL* }] set base_url [ad_conn package_url] @@ -16,160 +15,164 @@ set return_url "[ad_conn url]?[export_vars { grade_id }]" set elements [list task_name \ - [list label "Name" \ - link_url_col task_url \ - orderby_asc {task_name asc} \ - orderby_desc {task_name desc}] \ - pretty_due_date \ - [list label "Due date" \ - orderby_asc {pretty_due_date asc} \ - orderby_desc {pretty_due_date desc}] \ - ] + [list label "Name" \ + link_url_col task_url \ + orderby_asc {task_name asc} \ + orderby_desc {task_name desc}] \ + pretty_due_date \ + [list label "Due date" \ + orderby_asc {pretty_due_date asc} \ + orderby_desc {pretty_due_date desc}] \ + ] if { $admin_p } { - #admin - lappend elements solution \ - [list label "" \ - link_url_col solution_url \ - link_html { title "Add/edit solution" }] - lappend elements audit_info \ - [list label "" \ - link_url_col audit_info_url \ - link_html { title "Audit info" }] - lappend elements groups_admin \ - [list label "" \ - link_url_col groups_admin_url \ - link_html { title "Groups administration" }] - lappend elements view \ - [list label "" \ - sub_class narrow \ - display_template {} \ - link_url_eval {[export_vars -base "${base_url}admin/tasks/task-add-edit" { grade_id task_id return_url mode }]} \ - link_html { title "View task" }] - lappend elements edit \ - [list label "" \ - sub_class narrow \ - display_template {} \ - link_url_eval {[export_vars -base "${base_url}admin/tasks/task-add-edit" { return_url item_id grade_id task_id }]} \ - link_html { title "Edit task" }] - lappend elements delete \ - [list label "" \ - sub_class narrow \ - display_template {} \ - link_url_eval {[export_vars -base "${base_url}admin/tasks/task-delete" { grade_id task_id return_url }]} \ - link_html { title "Delete task" }] - - set multirow_name tasks_admin - set actions [list "Add $grade_name" [export_vars -base "${base_url}admin/tasks/task-add-edit" { return_url grade_id }] ] + #admin + lappend elements solution \ + [list label "" \ + link_url_col solution_url \ + link_html { title "Add/edit solution" }] + lappend elements audit_info \ + [list label "" \ + link_url_col audit_info_url \ + link_html { title "Audit info" }] + lappend elements groups_admin \ + [list label "" \ + link_url_col groups_admin_url \ + link_html { title "Groups administration" }] + lappend elements view \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "${base_url}admin/tasks/task-add-edit" { grade_id task_id return_url mode }]} \ + link_html { title "View task" }] + lappend elements edit \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "${base_url}admin/tasks/task-add-edit" { return_url item_id grade_id task_id }]} \ + link_html { title "Edit task" }] + lappend elements delete \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "${base_url}admin/tasks/task-delete" { grade_id task_id return_url }]} \ + link_html { title "Delete task" }] + + set multirow_name tasks_admin + set actions [list "Add $grade_name" [export_vars -base "${base_url}admin/tasks/task-add-edit" { return_url grade_id }] ] } else { - #student - lappend elements answer \ - [list label "" \ - link_url_col answer_url \ - link_html { title "Add/edit answer" }] - lappend elements view \ - [list label "" \ - sub_class narrow \ - display_template {} \ - link_url_eval {[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]} \ - link_html { title "View task" }] - set multirow_name tasks - set actions "" + #student + lappend elements answer \ + [list label "" \ + link_url_col answer_url \ + link_html { title "Add/edit answer" }] + lappend elements view \ + [list label "" \ + sub_class narrow \ + display_template {} \ + link_url_eval {[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]} \ + link_html { title "View task" }] + set multirow_name tasks + set actions "" } template::list::create \ -name tasks \ -multirow $multirow_name \ -actions $actions \ - -key task_id \ - -pass_properties { return_url mode base_url } \ - -filters { grade_id {} } \ - -elements $elements + -key task_id \ + -pass_properties { return_url mode base_url } \ + -filters { grade_id {} } \ + -elements $elements \ + -orderby_name assignments_orderby \ + -orderby { default_value task_name } +set assignments_orderby [template::list::orderby_clause -orderby -name tasks] -set orderby [template::list::orderby_clause -orderby -name tasks] - -if {[string equal $orderby ""]} { - set orderby " order by task_name asc" +if {[string equal $assignments_orderby ""]} { + set assignments_orderby " order by task_name asc" } -db_multirow -extend { solution_url solution solution_mode task_url audit_info audit_info_url groups_admin groups_admin_url } tasks_admin get_tasks_admin { *SQL* } { +if { $admin_p } { + + db_multirow -extend { solution_url solution solution_mode task_url audit_info audit_info_url groups_admin groups_admin_url } tasks_admin get_tasks_admin { *SQL* } { # working with task stuff (if it has a file/url attached) if { [empty_string_p $task_data] } { - set task_url "[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]" - set task_name "$task_name (No data)" + set task_url "[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]" + set task_name "$task_name (No data)" } elseif { [regexp "http://" $task_data] } { - set task_url "[export_vars -base "$task_data" { }]" - set task_name "$task_name (URL)" + set task_url "[export_vars -base "$task_data" { }]" + set task_name "$task_name (URL)" } else { - # we assume it's a file - set task_url "[export_vars -base "${base_url}view/$task_title" { revision_id }]" - set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" + # we assume it's a file + set task_url "[export_vars -base "${base_url}view/$task_title" { revision_id }]" + set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" } if { ![empty_string_p $solution_id] } { - set solution_mode display - set solution_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id solution_id return_url solution_mode }]" - set solution "View/Edit Solution" + set solution_mode display + set solution_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id solution_id return_url solution_mode }]" + set solution "View/Edit Solution" } else { - set solution_mode edit - set solution_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id return_url solution_mode }]" - set solution "Upload Solution" + set solution_mode edit + set solution_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id return_url solution_mode }]" + set solution "Upload Solution" } set audit_info_url "[export_vars -base "${base_url}admin/evaluations/audit-info" { grade_id task_id }]" set audit_info "Audit Info." if { ![string eq $number_of_members 1] } { - set groups_admin_url "[export_vars -base "${base_url}admin/groups/one-task" { grade_id task_id }]" - set groups_admin "Groups Admin." + set groups_admin_url "[export_vars -base "${base_url}admin/groups/one-task" { grade_id task_id }]" + set groups_admin "Groups Admin." } -} - -db_multirow -extend { task_url solution_url solution solution_mode answer answer_url } tasks get_tasks { *SQL* } { + } +} else { + db_multirow -extend { task_url solution_url solution solution_mode answer answer_url } tasks get_tasks { *SQL* } { set answer_mode display # working with task stuff (if it has a file/url attached) if { [empty_string_p $task_data] } { - set task_url "[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]" - set task_name "$task_name (No data)" + set task_url "[export_vars -base "${base_url}task-view" { grade_id task_id return_url }]" + set task_name "$task_name (No data)" } elseif { [regexp "http://" $task_data] } { - set task_url "[export_vars -base "$task_data" { }]" - set task_name "$task_name (URL)" + set task_url "[export_vars -base "$task_data" { }]" + set task_name "$task_name (URL)" } else { - # we assume it's a file - set task_url "[export_vars -base "${base_url}view/$task_title" { revision_id }]" - set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" + # we assume it's a file + set task_url "[export_vars -base "${base_url}view/$task_title" { revision_id }]" + set task_name "$task_name ([format %.0f [expr ($content_length/1024)]] Kb)" } if { [string eq $online_p "t"] } { - if { ([template::util::date::compare $due_date [template::util::date::now]] > 0) } { - if { [empty_string_p $answer_id] } { - set answer "turn in" - set answer_mode edit - set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id return_url answer_mode }]" - } else { - set answer "turn in again" - set answer_mode display - set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id answer_id return_url answer_mode }]" - } - } elseif { [string eq $turn_in_late_p "t"] } { - if { [empty_string_p $answer_id] } { - set answer "turn in " - set answer_mode edit - set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id return_url answer_mode }]" - } else { - set answer "turn in again" - set answer_mode display - set answer_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id answer_id return_url solution_mode }]" - } + if { ([template::util::date::compare $due_date [template::util::date::now]] > 0) } { + if { [empty_string_p $answer_id] } { + set answer "submit answer" + set answer_mode edit + set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id return_url answer_mode }]" + } else { + set answer "submit answer again" + set answer_mode display + set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id answer_id return_url answer_mode }]" } - if { $number_of_members > 1 && [string eq [db_string get_group_id { *SQL* }] 0] } { - set answer "" - set answer_url "" + } elseif { [string eq $turn_in_late_p "t"] } { + if { [empty_string_p $answer_id] } { + set answer "submit answer " + set answer_mode edit + set answer_url "[export_vars -base "${base_url}answer-add-edit" { grade_id task_id return_url answer_mode }]" + } else { + set answer "submit answer again" + set answer_mode display + set answer_url "[export_vars -base "${base_url}admin/tasks/solution-add-edit" { grade_id task_id answer_id return_url solution_mode }]" } + } + if { $number_of_members > 1 && [string eq [db_string get_group_id { *SQL* }] 0] } { + set answer "" + set answer_url "" + } } -} + } +} \ No newline at end of file Index: openacs-4/packages/evaluation/sql/postgresql/evaluation-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/sql/postgresql/evaluation-create.sql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/sql/postgresql/evaluation-create.sql 22 May 2004 01:20:24 -0000 1.3 +++ openacs-4/packages/evaluation/sql/postgresql/evaluation-create.sql 31 May 2004 17:04:57 -0000 1.4 @@ -7,20 +7,13 @@ constraint evaluation_grades_id_fk references cr_revisions(revision_id), grade_name varchar(100), - class_id integer - constraint evaluation_grades_cid_nn - not null - constraint evaluation_grades_cid_fk - references groups, comments text, -- percentage of this grade type in the class weight numeric constraint evaluation_grades_w_ck check (weight between 0 and 100) ); -create index evalutaion_grades_cid_index on evaluation_grades(class_id); - select content_type__create_type ( 'evaluation_grades', -- content_type 'content_revision', -- super_type @@ -84,14 +77,14 @@ create table evaluation_tasks_class_map ( - class_id integer + package_id integer constraint evaluations_tasks_cmap_cid_fk - references groups, + references apm_packages, revision_id integer constraint evaluations_tasks_cmap_fid_fk references cr_revisions, constraint evaluaition_tasks_cmap_pk - primary key (class_id, revision_id) + primary key (package_id, revision_id) ); create table evaluation_tasks_sols ( @@ -320,23 +313,22 @@ -- GRADES --------------------------------------- -create function evaluation__new_grade (integer, integer, varchar, integer, numeric, varchar, timestamptz, integer, varchar, varchar, varchar, timestamptz, varchar, varchar) +create function evaluation__new_grade (integer, integer, varchar, numeric, varchar, timestamptz, integer, varchar, varchar, varchar, timestamptz, varchar, varchar) returns integer as ' declare p_item_id alias for $1; p_revision_id alias for $2; p_grade_name alias for $3; - p_class_id alias for $4; - p_weight alias for $5; - p_object_type alias for $6; - p_creation_date alias for $7; - p_creation_user alias for $8; - p_creation_ip alias for $9; - p_title alias for $10; -- default null - p_description alias for $11; -- default null - p_publish_date alias for $12; - p_nls_language alias for $13; -- default null - p_mime_type alias for $14; -- default null + p_weight alias for $4; + p_object_type alias for $5; + p_creation_date alias for $6; + p_creation_user alias for $7; + p_creation_ip alias for $8; + p_title alias for $9; -- default null + p_description alias for $10; -- default null + p_publish_date alias for $11; + p_nls_language alias for $12; -- default null + p_mime_type alias for $13; -- default null v_revision_id integer; @@ -360,13 +352,11 @@ insert into evaluation_grades (grade_id, grade_name, - class_id, comments, weight) values (v_revision_id, p_grade_name, - p_class_id, p_description, p_weight); Index: openacs-4/packages/evaluation/sql/postgresql/evaluation-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/sql/postgresql/evaluation-drop.sql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/sql/postgresql/evaluation-drop.sql 14 May 2004 23:38:42 -0000 1.3 +++ openacs-4/packages/evaluation/sql/postgresql/evaluation-drop.sql 31 May 2004 17:04:57 -0000 1.4 @@ -167,7 +167,7 @@ -- GRADES --------------------------------------- -drop function evaluation__new_grade (integer, integer, varchar, integer, numeric, varchar, timestamptz, integer, varchar, varchar, varchar, timestamptz, varchar, varchar); +drop function evaluation__new_grade (integer, integer, varchar, numeric, varchar, timestamptz, integer, varchar, varchar, varchar, timestamptz, varchar, varchar); drop function evaluation__delete_grade (integer); @@ -255,4 +255,8 @@ drop function evaluation__delete_folder (integer,varchar); +drop function evaluation__new_grades_sheet (integer, integer, integer, varchar, timestamptz, integer, varchar, varchar, timestamptz, varchar, varchar); +drop function evaluation__delete_grades_sheet (integer); + + 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 -N -r1.5 -r1.6 --- openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl 19 May 2004 17:33:08 -0000 1.5 +++ openacs-4/packages/evaluation/tcl/apm-callback-procs.tcl 31 May 2004 17:04:57 -0000 1.6 @@ -48,22 +48,21 @@ Cleans the integration whith the notifications package. } { - db_transaction { # Delete the type_id for a specific assignment notification::type::delete -short_name one_assignment_notif # Delete the implementation for the notification of an assignment - delete_assignment_impl + delete_one_assignment_impl # Delete the type_id for a especific evaluation notification::type::delete -short_name one_evaluation_notif # Delete the implementation for the notification of an evaluation - delete_evaluation_impl + delete_one_evaluation_impl - } + } } ad_proc -private evaluation::apm::package_instantiate { Index: openacs-4/packages/evaluation/tcl/evaluation-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/tcl/evaluation-procs-postgresql.xql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/tcl/evaluation-procs-postgresql.xql 19 May 2004 17:33:08 -0000 1.3 +++ openacs-4/packages/evaluation/tcl/evaluation-procs-postgresql.xql 31 May 2004 17:04:57 -0000 1.4 @@ -33,7 +33,6 @@ :item_id, :revision_id, :name, - -1, -- class_id temporal :weight, 'evaluation_grades', now(), --creation date @@ -90,7 +89,6 @@ :revision_id, :name, :number_of_members, - :grade_id, -- class_id temporal :description, :weight, :due_date, @@ -462,7 +460,6 @@ :exams_item_id, :exams_revision_id, 'Exams', - -1, -- class_id temporal 40, 'evaluation_grades', now(), --creation date @@ -510,6 +507,28 @@ + + + + select evaluation__new_grade ( + :projects_item_id, + :projects_revision_id, + 'Projects', + 20, + 'evaluation_grades', + now(), --creation date + :creation_user, + :creation_ip, + :projects_revision_name, + 'Projects for students', + now(), --publish date + null, --nls_language + 'text/plain' --mime_type + ); + + + + @@ -550,7 +569,6 @@ :tasks_item_id, :tasks_revision_id, 'Tasks', - -1, -- class_id temporal 40, 'evaluation_grades', now(), --creation date Index: openacs-4/packages/evaluation/tcl/evaluation-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/tcl/evaluation-procs.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/evaluation/tcl/evaluation-procs.tcl 19 May 2004 17:33:08 -0000 1.4 +++ openacs-4/packages/evaluation/tcl/evaluation-procs.tcl 31 May 2004 17:04:57 -0000 1.5 @@ -159,28 +159,6 @@ return } - - -ad_proc -private evaluation::export_entire_form_except { args } { - Exports all but part of a form -} { - # exports entire form except the variables specified in args - set hidden "" - set the_form [ns_getform] - if {![empty_string_p $the_form]} { - for {set i 0} {$i<[ns_set size $the_form]} {incr i} { - set varname [ns_set key $the_form $i] - if { [lsearch -exact $args $varname] == -1 } { - set varvalue [ns_set value $the_form $i] - append hidden "\n" - } - } - } - return $hidden -} - - ad_proc -private evaluation::now_plus_days { -ndays } { Create a new Date object for the current date and time plus the number of days given @@ -526,8 +504,8 @@ lappend csv_content "\nWill the student be able to see the grade? (Yes/No):" lappend csv_content "Yes" - lappend csv_content "\n\nParty id" - lappend csv_content "Party Name" + lappend csv_content "\n\nId" + lappend csv_content "Name" lappend csv_content "Grade" lappend csv_content "Comments/Edit reason" @@ -695,24 +673,7 @@ db_exec_plsql projects_item_new { *SQL* } - db_exec_plsql projects_revision_new { - select evaluation__new_grade ( - :projects_item_id, - :projects_revision_id, - 'Projects', - -1, -- class_id temporal - 20, - 'evaluation_grades', - now(), --creation date - :creation_user, - :creation_ip, - :projects_revision_name, - 'Projects for students', - now(), --publish date - null, --nls_language - 'text/plain' --mime_type - ); - } + db_exec_plsql projects_revision_new { *SQL* } db_exec_plsql projects_live_revision { *SQL* } Index: openacs-4/packages/evaluation/www/answer-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/answer-add-edit.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/answer-add-edit.tcl 19 May 2004 17:33:08 -0000 1.2 +++ openacs-4/packages/evaluation/www/answer-add-edit.tcl 31 May 2004 17:04:57 -0000 1.3 @@ -13,7 +13,7 @@ item_id:integer,notnull,optional upload_file:trim,optional upload_file.tmpfile:tmpfile,optional - {return_url "/"} + return_url:notnull } set user_id [ad_conn user_id] @@ -31,7 +31,7 @@ set context [list $page_title] -ad_form -html { enctype multipart/form-data } -name answer -cancel_url $return_url -export { item_id grade_id task_id attached_p } -form { +ad_form -html { enctype multipart/form-data } -name answer -cancel_url $return_url -export { item_id grade_id task_id attached_p return_url } -form { answer_id:key Index: openacs-4/packages/evaluation/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/index.adp,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/evaluation/www/index.adp 19 May 2004 17:33:08 -0000 1.4 +++ openacs-4/packages/evaluation/www/index.adp 31 May 2004 17:04:57 -0000 1.5 @@ -14,7 +14,7 @@
  • @grades.grade_name@
    - +
  • @@ -27,11 +27,11 @@
  • @grades.grade_name@
    - +
  • -
    Your total grade in this class is: @total_class_grade@ +
    Your total grade in this class is: @total_class_grade@
    Index: openacs-4/packages/evaluation/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/index.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/www/index.tcl 19 May 2004 17:33:08 -0000 1.3 +++ openacs-4/packages/evaluation/www/index.tcl 31 May 2004 17:04:57 -0000 1.4 @@ -1,13 +1,16 @@ # /package/evaluation/www/index.tcl ad_page_contract { - - Index page for evaluation package + + Index page for evaluation package @author jopez@galileo.edu @creation-date Mar 2004 @cvs-id $Id$ - + +} { + {assignments_orderby ""} + {evaluations_orderby ""} } set page_title "Evaluation Index" Index: openacs-4/packages/evaluation/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/index.adp,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/www/admin/index.adp 19 May 2004 17:33:09 -0000 1.3 +++ openacs-4/packages/evaluation/www/admin/index.adp 31 May 2004 17:04:57 -0000 1.4 @@ -6,7 +6,10 @@ - +

    Grades Reports

    +

    Assignments

    @assignments_notification_chunk;noquote@

      @@ -15,7 +18,7 @@
    • @grades.grade_name@
      - +
    • @@ -29,13 +32,9 @@
    • @grades.grade_name@
      - +
    -
    -

    Grades Reports

    - \ No newline at end of file + Index: openacs-4/packages/evaluation/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/index.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/www/admin/index.tcl 19 May 2004 17:33:09 -0000 1.3 +++ openacs-4/packages/evaluation/www/admin/index.tcl 31 May 2004 17:04:57 -0000 1.4 @@ -8,8 +8,12 @@ @creation-date Mar 2004 @cvs-id $Id$ +} { + {assignments_orderby ""} + {evaluations_orderby ""} } + set page_title "Evaluation Index" set context {} Index: openacs-4/packages/evaluation/www/admin/evaluations/evaluations-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/evaluations/evaluations-edit.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/evaluation/www/admin/evaluations/evaluations-edit.tcl 13 May 2004 16:29:40 -0000 1.3 +++ openacs-4/packages/evaluation/www/admin/evaluations/evaluations-edit.tcl 31 May 2004 17:04:58 -0000 1.4 @@ -22,7 +22,7 @@ [list label "Answer" \ link_url_col answer_url \ link_html { title "View answer" }] \ - submission_date \ + pretty_submission_date \ [list label "Submission Date" \ orderby_asc {submission_date asc} \ orderby_desc {submission_date desc}] \ Index: openacs-4/packages/evaluation/www/admin/grades/grades-add-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-add-edit.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/grades/grades-add-edit.xql 28 Apr 2004 11:06:42 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/grades/grades-add-edit.xql 31 May 2004 17:04:58 -0000 1.2 @@ -6,7 +6,7 @@ - select grade_name, class_id, comments, weight + select grade_name, comments, weight from evaluation_grades where grade_id = :grade_id Index: openacs-4/packages/evaluation/www/admin/grades/grades-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-postgresql.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/grades/grades-postgresql.xql 28 Apr 2004 11:06:42 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/grades/grades-postgresql.xql 31 May 2004 17:04:58 -0000 1.2 @@ -31,4 +31,14 @@ + + + select sum(eg.weight) + from evaluation_gradesx eg, acs_objects ao + where content_revision__is_live(eg.grade_id) = true + and eg.item_id = ao.object_id + and ao.context_id = :package_id + + + Index: openacs-4/packages/evaluation/www/admin/grades/grades-reports-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-reports-postgresql.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/grades/grades-reports-postgresql.xql 12 May 2004 02:07:45 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/grades/grades-reports-postgresql.xql 31 May 2004 17:04:58 -0000 1.3 @@ -57,4 +57,21 @@
    + + + + select cu.first_names||', '||cu.last_name as student_name + $sql_query + from cc_users cu, + registered_users ru, + dotlrn_member_rels_approved app + where app.community_id = :community_id + and app.user_id = ru.user_id + and app.user_id = cu.person_id + and app.role = 'student' + $orderby + + + + Index: openacs-4/packages/evaluation/www/admin/grades/grades-reports.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-reports.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/grades/grades-reports.tcl 12 May 2004 02:07:45 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/grades/grades-reports.tcl 31 May 2004 17:04:58 -0000 1.3 @@ -2,54 +2,71 @@ ad_page_contract { - Grades reports of a group + Grades reports of a group - @creation-date Apr 2004 - @author jopez@galileo.edu - @cvs-id $Id$ + @creation-date Apr 2004 + @author jopez@galileo.edu + @cvs-id $Id$ } { - {orderby ""} + {orderby ""} } -validate { - grades_for_package { - if { [string eq [db_string package_grades { *SQL* }] 0] } { - ad_complain "There are no grades for this group." - } + grades_for_package { + if { [string eq [db_string package_grades { *SQL* }] 0] } { + ad_complain "There are no grades for this group." } + } } set page_title "Grades Report" set context "Grades Report" set package_id [ad_conn package_id] +# we have to decide if we are going to show all the users in the system +# or only the students of a given class (community in dotrln) +# in order to create the groups + +set community_id [dotlrn_community::get_community_id] +if { [empty_string_p $community_id] } { + set query_name grades_report +} else { + set query_name community_grades_report +} + set elements [list student_name \ - [list label "Name" \ - link_url_col student_url \ - orderby_asc {student_name asc} \ - orderby_desc {student_name desc}] \ - ] + [list label "Name" \ + link_url_col student_url \ + orderby_asc {student_name asc} \ + orderby_desc {student_name desc}] \ + ] db_foreach grade_type { *SQL* } { - lappend elements grade_$grade_id \ - [list label "$grade_name ($weight %)"] + set grade_label_${grade_id} "$grade_name ($weight %) " + append pass_grades " grade_label_${grade_id} " + lappend elements grade_$grade_id \ + [list label "@grade_label_${grade_id};noquote@" \ + orderby_asc {grade_$grade_id asc} \ + orderby_desc {grade_$grade_id desc} \ + ] - append sql_query [db_map grade_total_grade] + append sql_query [db_map grade_total_grade] } lappend elements total_grade \ - [list label "Total Grade" \ - orderby_asc {total_grade asc} \ - orderby_desc {total_grade desc} \ - ] + [list label "Total Grade" \ + orderby_asc {total_grade asc} \ + orderby_desc {total_grade desc} \ + ] append sql_query [db_map class_total_grade] template::list::create \ - -name grades_report \ - -multirow grades_report \ - -key grade_id \ - -elements $elements \ - -orderby { default_value student_name } + -name grades_report \ + -multirow grades_report \ + -key grade_id \ + -elements $elements \ + -pass_properties " $pass_grades " \ + -orderby { default_value student_name } if { ![empty_string_p $orderby] } { set orderby "[template::list::orderby_clause -orderby -name grades_report]" @@ -58,7 +75,7 @@ } - -db_multirow grades_report grades_report { *SQL* } { - + +db_multirow grades_report $query_name { *SQL* } { + } Index: openacs-4/packages/evaluation/www/admin/grades/grades-type-reports-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-type-reports-postgresql.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/grades/grades-type-reports-postgresql.xql 12 May 2004 02:07:45 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/grades/grades-type-reports-postgresql.xql 31 May 2004 17:04:58 -0000 1.3 @@ -26,6 +26,23 @@ + + + + select cu.first_names||', '||cu.last_name as student_name + $sql_query + from cc_users cu, + registered_users ru, + dotlrn_member_rels_approved app + where app.community_id = :community_id + and app.user_id = ru.user_id + and app.user_id = cu.person_id + and app.role = 'student' + $orderby + + + + Index: openacs-4/packages/evaluation/www/admin/grades/grades-type-reports.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades-type-reports.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/grades/grades-type-reports.tcl 12 May 2004 02:07:45 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/grades/grades-type-reports.tcl 31 May 2004 17:04:58 -0000 1.3 @@ -24,6 +24,17 @@ set package_id [ad_conn package_id] +# we have to decide if we are going to show all the users in the system +# or only the students of a given class (community in dotrln) +# in order to create the groups + +set community_id [dotlrn_community::get_community_id] +if { [empty_string_p $community_id] } { + set query_name get_grades +} else { + set query_name community_get_grades +} + set elements [list student_name \ [list label "Name" \ orderby_asc {student_name asc} \ @@ -63,6 +74,6 @@ set task_order " order by student_name asc" } -db_multirow grade_tasks get_grades { *SQL* } { +db_multirow grade_tasks $query_name { *SQL* } { } Index: openacs-4/packages/evaluation/www/admin/grades/grades.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/grades/grades.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/grades/grades.tcl 28 Apr 2004 11:06:42 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/grades/grades.tcl 31 May 2004 17:04:58 -0000 1.2 @@ -2,14 +2,14 @@ ad_page_contract { - List of grades and options to admin grades + List of grades and options to admin grades @author jopez@galileo.edu @creation-date Feb 2004 @cvs-id $Id$ } -query { - {orderby:optional} + {orderby:optional} } set context [list Grades] @@ -20,32 +20,38 @@ set actions [list "Add assignment type" [export_vars -base "grades-add-edit" { }]] +if { [format %2.f [db_string sum_grades { *SQL* }]] > 100.00} { + set aggregate_label "Total" +} else { + set aggregate_label "Total" +} + template::list::create \ -name grades \ -multirow grades \ -actions $actions \ - -key grade_id \ - -pass_properties { return_url } \ + -key grade_id \ + -pass_properties { return_url aggregate_label } \ -elements { grade_name { label "Name" - orderby_asc {grade_name asc} - orderby_desc {grade_name desc} + orderby_asc {grade_name asc} + orderby_desc {grade_name desc} link_url_eval {[export_vars -base "distribution-edit" { grade_id }]} link_html { title "View assignment type distribution" } } weight { label "Weight" - orderby_asc {weight asc} - orderby_desc {weight desc} - display_template { @grades.weight@% } - aggregate sum - aggregate_label {Total} + orderby_asc {weight asc} + orderby_desc {weight desc} + display_template { @grades.weight@% } + aggregate sum + aggregate_label { @aggregate_label;noquote@ } } comments { label "Description" - orderby_asc {comments asc} - orderby_desc {comments desc} + orderby_asc {comments asc} + orderby_desc {comments desc} } edit { label {} @@ -80,9 +86,9 @@ set total_weight [format %.2f $total_weight] if { ![string eq $total_weight "100.00"] && ![string eq $total_weight "0"] } { - set notice "The sum of the weight of all the assignment types is $total_weight and it should be 100.00 by the end of the term(supposedly)." + set notice "The sum of the weight of all the assignment types is $total_weight and it should be 100.00 by the end of the term(supposedly)." } else { - set notice "" + set notice "" } ad_return_template Index: openacs-4/packages/evaluation/www/admin/groups/group-member-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/group-member-add.adp,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/groups/group-member-add.adp 28 Apr 2004 11:06:42 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/groups/group-member-add.adp 31 May 2004 17:04:58 -0000 1.2 @@ -3,7 +3,7 @@ @context;noquote@ -

    Please select the group

    +

    Please select the group

    Index: openacs-4/packages/evaluation/www/admin/groups/group-member-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/group-member-add.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/groups/group-member-add.tcl 28 Apr 2004 11:06:42 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/groups/group-member-add.tcl 31 May 2004 17:04:58 -0000 1.2 @@ -51,7 +51,7 @@ db_multirow -extend { associate_to_group_url associate_to_group } evaluation_groups get_evaluation_groups { *SQL* } { set associate_to_group_url [export_vars -base "group-member-add-2" -url { task_id student_id evaluation_group_id }] - set associate_to_group "Associate to group..." + set associate_to_group "Associate to this group" } Index: openacs-4/packages/evaluation/www/admin/groups/one-group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/one-group.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/groups/one-group.adp 12 May 2004 02:07:46 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/groups/one-group.adp 31 May 2004 17:04:58 -0000 1.3 @@ -4,6 +4,12 @@ +
      +
    • To chanche the name, edit the name in the text input and then click on the "Rename Group" botton. +
    • To delete the group, click on the "Delete Group" botton. +
    • To unassociate a member of the group, click on the "Unassociate member" link. +
    +
    @export_vars;noquote@
    @@ -16,8 +22,8 @@ -

    Number of Members
    of this group: - @number_of_members@

    +

    Number of members of this group:
    + @number_of_members@

    Index: openacs-4/packages/evaluation/www/admin/groups/one-group.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/one-group.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/groups/one-group.tcl 12 May 2004 02:07:46 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/groups/one-group.tcl 31 May 2004 17:04:58 -0000 1.3 @@ -29,10 +29,10 @@ [list label "Student Name" \ orderby_asc {student_name asc} \ orderby_desc {student_name desc}] \ - desassociate_member \ + unassociate_member \ [list label "" \ - link_url_col desassociate_member_url \ - link_html { title "Desassociate student for this group" }] \ + link_url_col unassociate_member_url \ + link_html { title "Unassociate student for this group" }] \ ] template::list::create \ @@ -50,9 +50,9 @@ set orderby " order by student_name asc" } -db_multirow -extend { desassociate_member_url desassociate_member } one_group get_group_members { *SQL* } { - set desassociate_member_url [export_vars -base "group-remove-member" -url { evaluation_group_id task_id rel_id }] - set desassociate_member "Desassociate member" +db_multirow -extend { unassociate_member_url unassociate_member } one_group get_group_members { *SQL* } { + set unassociate_member_url [export_vars -base "group-remove-member" -url { evaluation_group_id task_id rel_id }] + set unassociate_member "Unassociate member" } set export_vars [export_vars -form { task_id evaluation_group_id }] Index: openacs-4/packages/evaluation/www/admin/groups/one-task.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/one-task.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/groups/one-task.adp 22 May 2004 01:20:25 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/groups/one-task.adp 31 May 2004 17:04:58 -0000 1.3 @@ -2,7 +2,14 @@ @page_title;noquote@ @context;noquote@ - +

    In this page you can administer the groups for the assignment.

    +
      +
    • First, you will see the list of students without group (if there are students without group) and you can create a group by selecting the members of the group and then clicking on the "Create Group" botton.
    • +
    • You can also add a student to an existing group by clicking on the "Associate to group..." link. Here you will be asked to select the group to wich you want to add the user.
    • +
    • Also, you will see the list of already created groups (if there are any created groups). Click on the "Group administration" link in order to administer the group. In this administration pages you will be able to unassociate members of a given group, rename the group and/or delete the group.
    • +
    + + @@ -16,8 +23,8 @@
    @reuse_link;noquote@ -

    Number of Members
    - @n_of_members@

    +

    Number of members for this task:
    + @n_of_members@

    Index: openacs-4/packages/evaluation/www/admin/groups/one-task.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/one-task.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/groups/one-task.tcl 22 May 2004 01:20:25 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/groups/one-task.tcl 31 May 2004 17:04:58 -0000 1.3 @@ -22,22 +22,22 @@ db_1row get_info { *SQL* } set page_title "Groups for task $task_name" -set context [list "Task Groups"] +set context [list "Assignment Groups"] # we have to decide if we are going to show all the users in the system # or only the students of a given class (community in dotrln) # in order to create the groups set community_id [dotlrn_community::get_community_id] if { [empty_string_p $community_id] } { - set query_name students_without_group + set query_name get_students_without_group } else { - set query_name community_students_without_group + set query_name community_get_students_without_group } set elements [list associate \ [list label "" \ - display_template { } \ + display_template { } \ ] \ student_name \ [list label "Name" \ @@ -51,9 +51,9 @@ template::list::create \ -name students_without_group \ - -multirow $query_name \ + -multirow students_without_group \ -key student_id \ - -pass_properties { return_url student_id query_name } \ + -pass_properties { return_url student_id } \ -filters { task_id {} } \ -elements $elements @@ -64,7 +64,7 @@ set orderby " order by student_name asc" } -db_multirow -extend { associate_to_group_url associate_to_group } $query_name get_$query_name { *SQL* } { +db_multirow -extend { associate_to_group_url associate_to_group } students_without_group $query_name { *SQL* } { set associate_to_group_url [export_vars -base "group-member-add" -url { task_id student_id }] set associate_to_group "Associate to group..." } @@ -91,10 +91,10 @@ template::list::create \ -name task_groups \ -multirow task_groups \ - -key evaluation_group_id \ - -pass_properties { return_url evaluation_group_id } \ - -filters { task_id {} } \ - -orderby_name orderby_groups \ + -key evaluation_group_id \ + -pass_properties { return_url evaluation_group_id } \ + -filters { task_id {} } \ + -orderby_name orderby_groups \ -elements $elements Index: openacs-4/packages/evaluation/www/admin/groups/one-task.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/groups/one-task.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/evaluation/www/admin/groups/one-task.xql 22 May 2004 01:20:25 -0000 1.2 +++ openacs-4/packages/evaluation/www/admin/groups/one-task.xql 31 May 2004 17:04:58 -0000 1.3 @@ -35,7 +35,7 @@ - + select p.last_name ||', '|| p.first_names as student_name, Index: openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.adp,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.adp 28 Apr 2004 11:09:54 -0000 1.1 +++ openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.adp 31 May 2004 17:04:58 -0000 1.2 @@ -2,4 +2,37 @@ @page_title;noquote@ @context;noquote@ + +

    Index: openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl 22 May 2004 01:20:25 -0000 1.4 +++ openacs-4/packages/evaluation/www/admin/tasks/task-add-edit.tcl 31 May 2004 17:04:58 -0000 1.5 @@ -14,225 +14,239 @@ upload_file.tmpfile:tmpfile,optional {mode "edit"} return_url + admin_groups_p:optional } set package_id [ad_conn package_id] if { [ad_form_new_p -key task_id] } { - set page_title "Add Task" + set page_title "Add Task" } else { - set page_title "Edit Task" + set page_title "Edit Task" } +if { [info exists admin_groups_p] } { + set div_visibility visible + set checked_p checked +} else { + set div_visibility hidden + set checked_p "" +} + db_1row get_grade_info { *SQL* } set context [list [list [export_vars -base grades { package_id }] "Grades"] $page_title] set attached_p "f" ad_form -html { enctype multipart/form-data } -name task -cancel_url $return_url -export { return_url item_id storage_type grade_id attached_p } -mode $mode -form { - task_id:key + task_id:key - {task_name:text - {label "Task Name"} - {html {size 30}} - } - + {task_name:text + {label "Task Name"} + {html {size 30}} + } + } if { ![ad_form_new_p -key task_id] } { - db_1row get_task_info { *SQL* } - - if { [string eq $storage_type "lob"] } { + db_1row get_task_info { *SQL* } + + if { [string eq $storage_type "lob"] } { - if { [string eq $mode "edit"] } { - set attached_p "t" - - ad_form -extend -name task -form { - {upload_file:file,optional - {label "File"} - {html "size 30"} - {help_text "Currently $title is attached to this task, but you can attach a different file/url just by adding it here"} - } - {unattach_p:text(checkbox),optional - {label "Unattach file?"} - {options {{"" "t"}}} - {help_text "Check this if you want to unattach the file"} - } - {url:text(text),optional - {label "URL"} - {value "http://"} - } - } - } else { - ad_form -extend -name task -form { - {upload_file:text,optional - {label "File"} - {html "size 30"} - {value "$title"} - } - {unattach_p:text(hidden) - } - {url:text(hidden) - } - } + if { [string eq $mode "edit"] } { + set attached_p "t" + + ad_form -extend -name task -form { + {upload_file:file,optional + {label "File"} + {html "size 30"} + {help_text "Currently $title is attached to this task, but you can attach a different file/url just by adding it here"} } - } elseif { [regexp "http://" $content] } { - - if { [string eq $mode "edit"] } { - - set attached_p "t" - - ad_form -extend -name task -form { - - {upload_file:file,optional - {label "File"} - {html "size 30"} - } - {url:text(text),optional - {label "URL"} - {value "http://"} - {help_text "Currently $content is associated to this task, but you can associate a different url/file just by adding it here"} - } - {unattach_p:text(checkbox), optional - {label "Unassociate url?"} - {options {{"" "t"}}} - {help_text "Check this if you want to unattach the file"} - } - } - } else { - ad_form -extend -name task -form { - - {upload_file:hidden - } - {url:text(text),optional - {label "URL"} - {value "$content"} - } - {unattach_p:text(hidden) - } - } + {unattach_p:text(checkbox),optional + {label "Unattach file?"} + {options {{"" "t"}}} + {help_text "Check this if you want to unattach the file"} } + {url:text(text),optional + {label "URL"} + {value "http://"} + } + } } else { - ad_form -extend -name task -form { - - {upload_file:file,optional - {label "File"} - {html "size 30"} - } - - {url:text(text),optional - {label "URL"} - {value "http://"} - } - - {unattach_p:text(hidden),optional - {value ""} - } + ad_form -extend -name task -form { + {upload_file:text,optional + {label "File"} + {html "size 30"} + {value "$title"} } - - } -} else { - - ad_form -extend -name task -form { - - {upload_file:file,optional - {label "File"} - {html "size 30"} + {unattach_p:text(hidden) } + {url:text(hidden) + } + } } + } elseif { [regexp "http://" $content] } { - ad_form -extend -name task -form { + if { [string eq $mode "edit"] } { + + set attached_p "t" + + ad_form -extend -name task -form { + {upload_file:file,optional + {label "File"} + {html "size 30"} + } {url:text(text),optional - {label "URL"} - {value "http://"} + {label "URL"} + {value "http://"} + {help_text "Currently $content is associated to this task, but you can associate a different url/file just by adding it here"} + } + {unattach_p:text(checkbox),optional + {label "Unassociate url?"} + {options {{"" "t"}}} + {help_text "Check this if you want to unattach the file"} } - - {unattach_p:text(hidden),optional - {value ""} + } + } else { + ad_form -extend -name task -form { + + {upload_file:hidden } + {url:text(text),optional + {label "URL"} + {value "$content"} + } + {unattach_p:text(hidden) + } + } } + } else { + ad_form -extend -name task -form { + + {upload_file:file,optional + {label "File"} + {html "size 30"} + {help_text "You can upload a file associated to this task by using the browse button (optional)"} + } + + {url:text(text),optional + {label "URL"} + {value "http://"} + {help_text "You can associate a link to this task by entering the absolute url here (also optional)"} + } + + {unattach_p:text(hidden),optional + {value ""} + } + } + + } +} else { + + ad_form -extend -name task -form { + + {upload_file:file,optional + {label "File"} + {html "size 30"} + {help_text "You can upload a file associated to this task by using the browse button and select the file from your computer (optional)"} + } + } + + ad_form -extend -name task -form { + + {url:text(text),optional + {label "URL"} + {value "http://"} + {help_text "You can associate a link to this task by entering the absolute url here (also optional)"} + } + + {unattach_p:text(hidden),optional + {value ""} + } + } } ad_form -extend -name task -form { - {description:richtext,optional - {label "Task's Description"} - {html {rows 4 cols 40 wrap soft}} - } + {description:richtext,optional + {label "Task's Description"} + {html {rows 4 cols 40 wrap soft}} + } - {due_date:date,to_sql(linear_date),from_sql(sql_date) - {label "Due Date"} - {format "MONTH DD YYYY"} - {today} - {help} - {value {[evaluation::now_plus_days -ndays 15]}} - } + {due_date:date,to_sql(linear_date),from_sql(sql_date) + {label "Due Date"} + {format "MONTH DD YYYY"} + {today} + {help} + {value {[evaluation::now_plus_days -ndays 15]}} + } - {weight:text - {label "Weight"} - {html {size 5}} - {help_text "over $grade_weight% of $grade_name"} - } + {number_of_members:text + {label "Number of Members"} + {value "1"} + {html {size 5 onChange TaskInGroups()}} + {help_text "1 = Individual"} + {after_html {
    Check this if you want to go to the groups admin page after submitting the task
    }} + } - {number_of_members:text - {label "Number of Members"} - {value "1"} - {html {size 5}} - {help_text "1 = Individual"} - } + {weight:text + {label "Weight"} + {html {size 5}} + {help_text "over $grade_weight% of $grade_name"} + } + + {online_p:text(radio) + {label "Will the task be submitted online?"} + {options {{Yes t} {No f}}} + {value t} + } - {online_p:text(radio) - {label "Will the task be submitted online?"} - {options {{Yes t} {No f}}} - {value t} - } + {late_submit_p:text(radio) + {label "Can the student submit the answer
    after the due date?"} + {options {{Yes t} {"No" f}}} + {value t} + } - {late_submit_p:text(radio) - {label "Can the student submit the answer
    after the due date?"} - {options {{Yes t} {"No" f}}} - {value t} - } + {requires_grade_p:text(radio) + {label "Will this task require a grade on the course?"} + {options {{Yes t} {"No" f}}} + {value t} + } - {requires_grade_p:text(radio) - {label "Will this task require a grade on the course?"} - {options {{Yes t} {"No" f}}} - {value t} - } - } -edit_request { - - db_1row task_info { *SQL* } + + db_1row task_info { *SQL* } - set due_date [template::util::date::from_ansi $due_date] + set due_date [template::util::date::from_ansi $due_date] } -validate { - {weight - { [ad_var_type_check_number_p $weight] } - {Weight is not a real number} - } - {due_date - { [template::util::date::compare $due_date [template::util::date::now]] > 0 } - {Due date must be in the future} - } - {url - { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) || (![string eq $url "http://"] && [util_url_valid_p $url]) } - {Upload a file OR a url, not both} - } - {upload_file - { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) } - {Upload a file OR a url, not both} - } - {number_of_members - { [ad_var_type_check_integer_p $number_of_members] } - {Number of members must be an integer} - } - {unattach_p - { ([string eq $unattach_p "t"] && [empty_string_p $upload_file] && [string eq $url "http://"]) || [empty_string_p $unattach_p] } - {First unattach the file/url, then submit another one or just upload a new file/url and leave this in blank} - } + {weight + { [ad_var_type_check_number_p $weight] } + {Weight is not a real number} + } + {due_date + { [template::util::date::compare $due_date [template::util::date::now]] > 0 } + {Due date must be in the future} + } + {url + { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) || (![string eq $url "http://"] && [util_url_valid_p $url]) } + {Upload a file OR a url, not both} + } + {upload_file + { ([string eq $url "http://"] && ![empty_string_p $upload_file]) || (![string eq $url "http://"] && [empty_string_p $upload_file]) || ([string eq $url "http://"] && [empty_string_p $upload_file]) } + {Upload a file OR a url, not both} + } + {number_of_members + { [ad_var_type_check_integer_p $number_of_members] } + {Number of members must be an integer} + } + {unattach_p + { ([string eq $unattach_p "t"] && [empty_string_p $upload_file] && [string eq $url "http://"]) || [empty_string_p $unattach_p] } + {First unattach the file/url, then submit another one or just upload a new file/url and leave this in blank} + } } -new_data { evaluation::notification::do_notification -task_id $revision_id -package_id [ad_conn package_id] -edit_p 0 -notif_type one_assignment_notif @@ -298,8 +312,13 @@ } } } -after_submit { - ad_returnredirect "$return_url" - ad_script_abort + if { [info exists admin_groups_p] && $number_of_members > 1 } { + ad_returnredirect [export_vars -base "../groups/one-task" { {task_id $revision_id} }] + ad_script_abort + } else { + ad_returnredirect "$return_url" + ad_script_abort + } } ad_return_template