Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-classes-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-classes-create.sql,v diff -u -r1.14 -r1.15 --- openacs-4/packages/dotlrn/sql/oracle/dotlrn-classes-create.sql 22 Jan 2002 00:13:09 -0000 1.14 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-classes-create.sql 6 Mar 2002 22:35:15 -0000 1.15 @@ -99,6 +99,7 @@ as select dotlrn_class_instances.class_instance_id, dotlrn_class_instances.class_key, + dotlrn_class_instances.term_id, dotlrn_terms.term_name, dotlrn_terms.term_year, dotlrn_terms.start_date, Index: openacs-4/packages/dotlrn/tcl/class-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/class-procs.tcl,v diff -u -r1.22 -r1.23 --- openacs-4/packages/dotlrn/tcl/class-procs.tcl 19 Feb 2002 19:34:45 -0000 1.22 +++ openacs-4/packages/dotlrn/tcl/class-procs.tcl 6 Mar 2002 22:35:15 -0000 1.23 @@ -187,4 +187,21 @@ } { return [dotlrn_term::get_term_year -term_id [get_term_id -class_instance_id $class_instance_id]] } + + ad_proc -public can_create { + } { + can a class be created? essentially, does at least one department + exist? + } { + return [db_string can_create {}] + } + + ad_proc -public can_instantiate { + {-class_key:required} + } { + can this class be instantiated? + } { + return [db_string can_instantiate {}] + } + } Index: openacs-4/packages/dotlrn/tcl/class-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/class-procs.xql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/dotlrn/tcl/class-procs.xql 19 Feb 2002 19:26:50 -0000 1.7 +++ openacs-4/packages/dotlrn/tcl/class-procs.xql 6 Mar 2002 22:35:15 -0000 1.8 @@ -1,32 +1,53 @@ - - - insert into dotlrn_classes - (class_key, department_key) - values - (:class_key, :department_key) - - - - - select node_id - from site_nodes - where object_id = (select package_id - from dotlrn_classes_full - where class_key = :class_key) - - + + + insert into dotlrn_classes + (class_key, department_key) + values + (:class_key, :department_key) + + - - - select term_id - from dotlrn_class_instances - where class_instance_id = :class_instance_id - - + + + select node_id + from site_nodes + where object_id = (select package_id + from dotlrn_classes_full + where class_key = :class_key) + + + + + select term_id + from dotlrn_class_instances + where class_instance_id = :class_instance_id + + + + + select count(*) + from dual + where exists (select 1 + from dotlrn_departments) + + + + + + select count(*) + from dotlrn_terms + where dotlrn_terms.end_date > sysdate + and not exists (select 1 + from dotlrn_class_instances + where dotlrn_class_instances.class_key = :class_key + and dotlrn_class_instances.term_id = dotlrn_terms.term_id) + + + Index: openacs-4/packages/dotlrn/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/index.adp,v diff -u -r1.15 -r1.16 --- openacs-4/packages/dotlrn/www/index.adp 28 Jan 2002 21:57:52 -0000 1.15 +++ openacs-4/packages/dotlrn/www/index.adp 6 Mar 2002 22:35:15 -0000 1.16 @@ -2,7 +2,6 @@ dotLRN @portal_id@ -

@rendered_page@ Index: openacs-4/packages/dotlrn/www/members.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/members.adp,v diff -u -r1.7 -r1.8 --- openacs-4/packages/dotlrn/www/members.adp 6 Mar 2002 18:11:23 -0000 1.7 +++ openacs-4/packages/dotlrn/www/members.adp 6 Mar 2002 22:35:15 -0000 1.8 @@ -6,5 +6,4 @@ 1 @portal_id@ - Index: openacs-4/packages/dotlrn/www/one-community-admin.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/one-community-admin.adp,v diff -u -r1.17 -r1.18 --- openacs-4/packages/dotlrn/www/one-community-admin.adp 6 Mar 2002 05:12:54 -0000 1.17 +++ openacs-4/packages/dotlrn/www/one-community-admin.adp 6 Mar 2002 22:35:15 -0000 1.18 @@ -7,5 +7,4 @@ 0 1 - @rendered_page@ Index: openacs-4/packages/dotlrn/www/admin/class.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/class.adp,v diff -u -r1.6 -r1.7 --- openacs-4/packages/dotlrn/www/admin/class.adp 23 Jan 2002 01:44:01 -0000 1.6 +++ openacs-4/packages/dotlrn/www/admin/class.adp 6 Mar 2002 22:35:15 -0000 1.7 @@ -1,4 +1,5 @@ @pretty_name@ + Index: openacs-4/packages/dotlrn/www/admin/class.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/class.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/dotlrn/www/admin/class.tcl 11 Jan 2002 06:33:26 -0000 1.3 +++ openacs-4/packages/dotlrn/www/admin/class.tcl 6 Mar 2002 22:35:15 -0000 1.4 @@ -5,16 +5,21 @@ @creation-date Dec 10, 2001 @version $Id$ } -query { - {filter "select_current_class_instances"} + {term_id -1} } -properties { class_key:onevalue pretty_name:onevalue instances:multirow can_instantiate:onevalue } -db_multirow instances $filter {} +set query "select_class_instances" +if {$term_id == -1} { + set query "select_all_class_instances" +} -set can_instantiate [db_string can_instantiate_class {}] +db_multirow instances $query {} +set can_instantiate [dotlrn_class::can_instantiate -class_key $class_key] + ad_return_template Index: openacs-4/packages/dotlrn/www/admin/class.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/class.xql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/dotlrn/www/admin/class.xql 12 Jan 2002 09:27:16 -0000 1.4 +++ openacs-4/packages/dotlrn/www/admin/class.xql 6 Mar 2002 22:35:15 -0000 1.5 @@ -10,33 +10,13 @@ - + select class_instance_id - from dotlrn_class_instances_current + from dotlrn_class_instances where class_key = :class_key + and term_id = :term_id order by class_instance_id - - - - select class_instance_id - from dotlrn_class_instances_not_old - where class_key = :class_key - order by class_instance_id - - - - - - select count(*) - from dotlrn_terms - where dotlrn_terms.end_date > sysdate - and not exists (select 1 - from dotlrn_class_instances - where dotlrn_class_instances.class_key = :class_key - and dotlrn_class_instances.term_id = dotlrn_terms.term_id) - - Index: openacs-4/packages/dotlrn/www/admin/classes-chunk.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/classes-chunk.adp,v diff -u -r1.1 -r1.2 --- openacs-4/packages/dotlrn/www/admin/classes-chunk.adp 22 Jan 2002 23:04:48 -0000 1.1 +++ openacs-4/packages/dotlrn/www/admin/classes-chunk.adp 6 Mar 2002 22:35:15 -0000 1.2 @@ -1,20 +1,38 @@ + [ New <%= [ad_parameter classes_pretty_name] %> ] + -

- -

+

-@filter_bar@ + + + + +
+ + <%= [ad_parameter departments_pretty_name] %>:  + +

+ + + + + + - -

+
+ + + + +
<%= [ad_parameter departments_pretty_name] %><%= [ad_parameter classes_pretty_name] %> Key<%= [ad_parameter classes_pretty_name] %> Name
@classes.department_name@@classes.class_key@@classes.pretty_name@
- + [ New <%= [ad_parameter classes_pretty_name] %> ] Index: openacs-4/packages/dotlrn/www/admin/classes-chunk.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/classes-chunk.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/dotlrn/www/admin/classes-chunk.tcl 23 Jan 2002 00:15:44 -0000 1.2 +++ openacs-4/packages/dotlrn/www/admin/classes-chunk.tcl 6 Mar 2002 22:35:15 -0000 1.3 @@ -6,32 +6,39 @@ @creation-date 2001-11-04 @version $Id$ } -query { - {filter "select_current_class_instances"} } -properties { - filter_bar:onevalue classes:multirow } if {![exists_and_not_null department_key]} { set department_key "" } -set filter_bar [ad_dimensional { - {filter "Term:" select_current_class_instances - { - {select_current_class_instances current {}} - {select_current_and_future_class_instances "+future" {}} - {select_all_class_instances "+past" {}} - } - } +set departments [db_list_of_lists select_departments_for_select_widget { + select dotlrn_departments_full.pretty_name, + dotlrn_departments_full.department_key + from dotlrn_departments_full + order by dotlrn_departments_full.pretty_name, + dotlrn_departments_full.department_key }] +set departments [linsert $departments 0 {All ""}] +form create department_form + +element create department_form department_key \ + -label "Department" \ + -datatype text \ + -widget select \ + -options $departments \ + -html {onChange document.department_form.submit()} \ + -value $department_key + +if {[form is_valid department_form]} { + form get_values department_form department_key +} + if {![exists_and_not_null referer]} { - if {[empty_string_p $department_key]} { - set referer "classes?[export_vars filter]" - } else { - set referer "one-department?[export_vars {department_key filter}]" - } + set referer "classes?[export_vars department_key]" } set query "select_classes" @@ -41,4 +48,6 @@ db_multirow classes $query {} +set can_create [dotlrn_class::can_create] + ad_return_template Index: openacs-4/packages/dotlrn/www/admin/classes-chunk.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/classes-chunk.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/dotlrn/www/admin/classes-chunk.xql 22 Jan 2002 23:04:48 -0000 1.1 +++ openacs-4/packages/dotlrn/www/admin/classes-chunk.xql 6 Mar 2002 22:35:15 -0000 1.2 @@ -1,24 +1,35 @@ - - - select class_key, - pretty_name, - description - from dotlrn_classes_full - order by pretty_name - - + + + select dotlrn_classes_full.class_key, + dotlrn_classes_full.pretty_name, + dotlrn_classes_full.description, + dotlrn_classes_full.department_key, + dotlrn_departments_full.pretty_name as department_name + from dotlrn_classes_full, + dotlrn_departments_full + where dotlrn_classes_full.department_key = dotlrn_departments_full.department_key + order by dotlrn_departments_full.pretty_name, + dotlrn_classes_full.class_key, + dotlrn_classes_full.pretty_name + + - - - select class_key, - pretty_name, - description - from dotlrn_classes_full - where department_key = :department_key - order by pretty_name - - + + + select dotlrn_classes_full.class_key, + dotlrn_classes_full.pretty_name, + dotlrn_classes_full.description, + dotlrn_classes_full.department_key, + dotlrn_departments_full.pretty_name as department_name + from dotlrn_classes_full, + dotlrn_departments_full + where dotlrn_classes_full.department_key = :department_key + and dotlrn_classes_full.department_key = dotlrn_departments_full.department_key + order by dotlrn_classes_full.class_key, + dotlrn_classes_full.pretty_name + + Index: openacs-4/packages/dotlrn/www/admin/departments.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/departments.adp,v diff -u -r1.1 -r1.2 --- openacs-4/packages/dotlrn/www/admin/departments.adp 22 Jan 2002 00:13:09 -0000 1.1 +++ openacs-4/packages/dotlrn/www/admin/departments.adp 6 Mar 2002 22:35:15 -0000 1.2 @@ -7,12 +7,18 @@

-
    + + + + + -
  • -

    +
    + + + - +
    <%= [ad_parameter departments_pretty_name] %> Key<%= [ad_parameter departments_pretty_name] %> Name
    @departments.department_key@@departments.pretty_name@
    Index: openacs-4/packages/dotlrn/www/admin/departments.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/departments.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/dotlrn/www/admin/departments.xql 22 Jan 2002 00:13:09 -0000 1.1 +++ openacs-4/packages/dotlrn/www/admin/departments.xql 6 Mar 2002 22:35:15 -0000 1.2 @@ -6,6 +6,8 @@ select department_key, pretty_name from dotlrn_departments_full + order by pretty_name, + department_key Index: openacs-4/packages/dotlrn/www/admin/one-class.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/Attic/one-class.adp,v diff -u -r1.7 -r1.8 --- openacs-4/packages/dotlrn/www/admin/one-class.adp 10 Jan 2002 19:30:18 -0000 1.7 +++ openacs-4/packages/dotlrn/www/admin/one-class.adp 6 Mar 2002 22:35:15 -0000 1.8 @@ -6,22 +6,38 @@ @description@

    +

    + + [ New <%= [ad_parameter classes_pretty_name] %> Instance ] + + + + +

    + + + + + +
    + + Term:  + +
    +

    -Instances - - Index: openacs-4/packages/dotlrn/www/admin/one-class.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/Attic/one-class.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/dotlrn/www/admin/one-class.tcl 23 Jan 2002 00:15:44 -0000 1.6 +++ openacs-4/packages/dotlrn/www/admin/one-class.tcl 6 Mar 2002 22:35:15 -0000 1.7 @@ -7,6 +7,7 @@ @version $Id$ } -query { class_key:notnull + {term_id -1} } -properties { pretty_name:onevalue description:onevalue @@ -20,10 +21,46 @@ ad_script_abort } -db_multirow class_instances select_class_instances {} +set terms [db_list_of_lists select_terms_for_select_widget { + select dotlrn_terms.term_name || ' ' || dotlrn_terms.term_year, + dotlrn_terms.term_id + from dotlrn_terms + where dotlrn_terms.end_date > (sysdate - 360) + and dotlrn_terms.start_date < (sysdate + 360) + order by dotlrn_terms.start_date, + dotlrn_terms.end_date +}] +set terms [linsert $terms 0 {All -1}] -set can_instantiate [db_string can_instantiate_class {}] +form create term_form +element create term_form term_id \ + -label "Term" \ + -datatype integer \ + -widget select \ + -options $terms \ + -html {onChange document.term_form.submit()} \ + -value $term_id + +element create term_form class_key \ + -label "Class Key" \ + -datatype text \ + -widget hidden \ + -value $class_key + +if {[form is_valid term_form]} { + form get_values term_form term_id class_key +} + +set query "select_class_instances" +if {$term_id == -1} { + set query "select_all_class_instances" +} + +db_multirow class_instances $query {} + +set can_instantiate [dotlrn_class::can_instantiate -class_key $class_key] + set context_bar [list [list classes [ad_parameter classes_pretty_plural]] One] ad_return_template Index: openacs-4/packages/dotlrn/www/admin/one-class.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/Attic/one-class.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/dotlrn/www/admin/one-class.xql 17 Dec 2001 23:02:56 -0000 1.2 +++ openacs-4/packages/dotlrn/www/admin/one-class.xql 6 Mar 2002 22:35:15 -0000 1.3 @@ -1,6 +1,7 @@ + select pretty_name, @@ -11,21 +12,21 @@ - + select * from dotlrn_class_instances_full dotlrn_class_instances where dotlrn_class_instances.class_key = :class_key - + - select count(*) - from dotlrn_terms - where dotlrn_terms.term_id not in (select dotlrn_class_instances.term_id - from dotlrn_class_instances - where dotlrn_class_instances.class_key = :class_key) + select * + from dotlrn_class_instances_full dotlrn_class_instances + where dotlrn_class_instances.class_key = :class_key + and dotlrn_class_instances.term_id = :term_id + Index: openacs-4/packages/dotlrn/www/admin/one-department.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/Attic/one-department.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/dotlrn/www/admin/one-department.tcl 23 Jan 2002 00:15:44 -0000 1.3 +++ openacs-4/packages/dotlrn/www/admin/one-department.tcl 6 Mar 2002 22:35:15 -0000 1.4 @@ -6,14 +6,19 @@ @creation-date 2001-11-07 @version $Id$ } -query { - department_key:notnull + {department_key ""} } -properties { pretty_name:onevalue external_url:onevalue description:onevalue classes:multirow } +if {[empty_string_p $department_key]} { + ad_returnredirect "/dotlrn/admin/classes" + ad_script_abort +} + # Get information about that class if {![db_0or1row select_departments_info {}]} { ad_returnredirect "departments"