Index: openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/add-edit-postgresql.xql,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql 22 Aug 2003 21:06:10 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql 23 Aug 2003 00:24:34 -0000 1.6 @@ -26,7 +26,7 @@ select pm_project__new_project_revision ( - :item_id, + :project_item_id, :project_name, :project_code, :parent_id, @@ -49,7 +49,7 @@ select - item_id, + item_id as project_item_id, parent_id, project_id, title as project_name, Index: openacs-4/contrib/packages/project-manager/www/add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/add-edit.tcl,v diff -u -r1.8 -r1.9 --- openacs-4/contrib/packages/project-manager/www/add-edit.tcl 22 Aug 2003 21:06:10 -0000 1.8 +++ openacs-4/contrib/packages/project-manager/www/add-edit.tcl 23 Aug 2003 00:24:34 -0000 1.9 @@ -12,7 +12,7 @@ } { project_id:integer,optional - {item_id ""} + {project_item_id ""} {project_name ""} {project_code ""} {parent_id ""} @@ -62,8 +62,8 @@ {value $parent_id} } - {item_id:text(hidden) - {value $item_id} + {project_item_id:text(hidden) + {value $project_item_id} } {project_name:text @@ -121,7 +121,7 @@ } -new_data { set project_id [db_exec_plsql new_project_item { *SQL* }] - ad_returnredirect "one?[export_url_vars project_id]" + ad_returnredirect "one?[export_url_vars project_item_id project_id]" ad_script_abort } -edit_data { Index: openacs-4/contrib/packages/project-manager/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/index.adp,v diff -u -r1.9 -r1.10 --- openacs-4/contrib/packages/project-manager/www/index.adp 22 Aug 2003 21:06:10 -0000 1.9 +++ openacs-4/contrib/packages/project-manager/www/index.adp 23 Aug 2003 00:24:34 -0000 1.10 @@ -27,7 +27,7 @@ @projects.indent@ - + @projects.project_name@ Index: openacs-4/contrib/packages/project-manager/www/one-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one-postgresql.xql,v diff -u -r1.8 -r1.9 --- openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 22 Aug 2003 00:27:33 -0000 1.8 +++ openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 23 Aug 2003 00:24:34 -0000 1.9 @@ -3,7 +3,7 @@ SELECT - p.item_id + p.item_id as project_item_id FROM pm_projectsx p WHERE @@ -18,7 +18,7 @@ FROM pm_projectsx p, cr_items i WHERE - p.item_id = :item_id and + p.item_id = :project_item_id and p.revision_id = i.live_revision @@ -44,7 +44,7 @@ FROM pm_projectsx p, cr_items i WHERE - p.item_id = :item_id and + p.item_id = :project_item_id and p.project_id = :project_id and p.item_id = i.item_id @@ -71,7 +71,7 @@ FROM pm_projectsx p, cr_items i WHERE - p.item_id = :item_id and + p.item_id = :project_item_id and p.item_id = i.item_id ORDER BY p.project_id desc @@ -94,7 +94,7 @@ FROM pm_tasks_revisionsx t, cr_items i LEFT JOIN pm_task_constraints c ON i.item_id = c.task_id WHERE - t.parent_id = :item_id and + t.parent_id = :project_item_id and t.revision_id = i.live_revision ORDER BY t.end_date,t.title Index: openacs-4/contrib/packages/project-manager/www/one.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.adp,v diff -u -r1.15 -r1.16 --- openacs-4/contrib/packages/project-manager/www/one.adp 22 Aug 2003 00:27:33 -0000 1.15 +++ openacs-4/contrib/packages/project-manager/www/one.adp 23 Aug 2003 00:24:34 -0000 1.16 @@ -2,7 +2,7 @@ -@project_term@ #@item_id@: @project.project_name@ +@project_term@ #@project_item_id@: @project.project_name@ @context_bar@ @@ -98,7 +98,7 @@
  • Add - + Tasks Index: openacs-4/contrib/packages/project-manager/www/one.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/contrib/packages/project-manager/www/one.tcl 22 Aug 2003 00:27:33 -0000 1.9 +++ openacs-4/contrib/packages/project-manager/www/one.tcl 23 Aug 2003 00:24:34 -0000 1.10 @@ -21,7 +21,7 @@ } { - item_id:integer,optional + project_item_id:integer,optional project_id:integer,optional } -properties { @@ -33,10 +33,11 @@ versions:multirow parent_task_id:onevalue task_type:onevalue + project_id:onevalue } -validate { - item_id_exists { - if {![info exists item_id]} { - set item_id [db_string get_item_id { }] + project_item_id_exists { + if {![info exists project_item_id]} { + set project_item_id [db_string get_item_id { }] } } project_id_exists { Index: openacs-4/contrib/packages/project-manager/www/task-add-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit-postgresql.xql,v diff -u -r1.6 -r1.7 --- openacs-4/contrib/packages/project-manager/www/task-add-edit-postgresql.xql 21 Aug 2003 22:34:43 -0000 1.6 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit-postgresql.xql 23 Aug 2003 00:24:34 -0000 1.7 @@ -7,7 +7,7 @@ :project_item_id, '$task_title($i)', '$description($i)', - to_timestamp(now(),'YYYY MM DD HH24 MI SS'), + to_timestamp('[set end_date_$i]','YYYY MM DD HH24 MI SS'), '0', '$estimated_hours_work_min($i)', '$estimated_hours_work_max($i)', Index: openacs-4/contrib/packages/project-manager/www/task-add-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit.adp,v diff -u -r1.4 -r1.5 --- openacs-4/contrib/packages/project-manager/www/task-add-edit.adp 21 Aug 2003 22:34:43 -0000 1.4 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit.adp 23 Aug 2003 00:24:34 -0000 1.5 @@ -18,7 +18,7 @@ -Task @num.rownum@ + @num.rownum@   Subject:

    @@ -37,5 +37,3 @@ - - Index: openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl 21 Aug 2003 22:34:43 -0000 1.9 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit.tcl 23 Aug 2003 00:24:34 -0000 1.10 @@ -56,18 +56,52 @@ # --------------------------------------------------------------- # +# create a multirow we can use to iterate template::multirow create num number for {set i 1} {$i <= $number} {incr i} { template::multirow append num $i } -#if {[info exists end_date]} { -# for {set i 1} {$i <= $number} {incr i} { -# ns_log Notice "End_date: $end_date($i)" -# } -#} +# The evilest hack of all time. +# ------------------------------------------------------- +# This is a workaround the fact that using multiple dates +# with ad_form is extremely difficult. Dates are formatted +# like arrays, with values like end_date.day, end_date.month, +# end_date.year, and end_date.format . The problem is we want +# to have multiple end_dates. Using the multiple method, we +# then get entries like this: end_date.1.year, end_date.2.year, +# end_date.2.day, etc.. +# +# What this loop does is go through the array, and rename the +# values into other variables. We then feed these variables into +# the SQL function that creates the new tasks. This works. I'm +# sure there must be a better way to do it, but my posting on +# the forums didn't result in any other suggestions. + +if {[info exists end_date]} { + + set searchToken [array startsearch end_date] + + while {[array anymore end_date $searchToken]} { + + set keyname [array nextelement end_date $searchToken] + set keyvalu $end_date($keyname) + + # element_num is 1...n, element_type is year, format, day, month + regexp {(.*)\.(.*)} $keyname match element_num element_type + + set end_date_[set element_type]($element_num) $keyvalu + + } + + for {set i 1} {$i <= $number} {incr i} { + # set up date variable names + set end_date_$i [list $end_date_year($i) $end_date_month($i) $end_date_day($i) {} {} {}] + } +} + # terminology set project_term [parameter::get -parameter "ProjectName" -default "Project"] set task_term [parameter::get -parameter "TaskName" -default "Task"] @@ -124,7 +158,7 @@ } -select_query_name task_query -after_submit { - ad_returnredirect "task-constraint-add-edit?[export_vars -url task_revisions:multiple]" + ad_returnredirect "task-constraint-add-edit?[export_vars -url {task_revisions:multiple project_item_id}]" ad_script_abort } @@ -134,50 +168,41 @@ # DaveB showed me this trick. It lets you make a multiple out of # the items by stuffing them in an array. Long live DaveB. - append add_edit_definition " - {task_title.$i:text - {label \"Subject \#$i\"} - {html {size 39}} - } - - {description.$i:text(textarea) - {label \"Description\"} - {html {rows 7 cols 40}} - } - - {parent_id.$i:text(hidden) - } - - {end_date.$i:date,to_sql(linear_date),from_sql(sql_date) - {label \"End date\"} - {format \"MONTH DD YYYY\"} - {help} - } - - {estimated_hours_work_min.$i:integer - {label \"Hours estimate - min\"} - {html {size 3}} - } - - {estimated_hours_work_max.$i:integer - {label \"Hours estimate - max\"} - {html {size 3}} - } - " - + ad_form -extend -name add_edit -form \ + [list \ + [list \ + task_title.$i:text \ + {label "Subject \#$i"} \ + {html {size 39}} + ] \ + [list \ + description.$i:text(textarea) \ + {label "Description"} \ + {html {rows 7 cols 40}} + ] \ + [list \ + parent_id.$i:text(hidden) \ + ] \ + [list \ + end_date.$i:date,to_sql(linear_date) \ + {label "Deadline"} \ + {format "MONTH DD YYYY"} \ + {value {[util::date::today]}} \ + {help} \ + ] \ + [list \ + estimated_hours_work_min.$i:integer \ + {label "Hours estimate - min"} \ + {html {size 3}} \ + ] \ + [list \ + estimated_hours_work_max.$i:integer \ + {label "Hours estimate - max"} \ + {html {size 3}} \ + ] \ + ] } -ad_form -extend -name add_edit -form $add_edit_definition -# we are editing? -if {[exists_and_not_null task_id]} { - - ad_form -extend -name add_edit -form { - {percent_complete:integer - {label "Percent complete"} - {html {size 4}} - } -select_query_name task_query - } -} Index: openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-constraint-add-edit.adp,v diff -u -r1.1 -r1.2 --- openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.adp 7 Aug 2003 23:08:45 -0000 1.1 +++ openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.adp 23 Aug 2003 00:24:34 -0000 1.2 @@ -8,7 +8,7 @@ be completed. For example, the boards must be delivered before construction can begin. Entering constraints is important because it allows the system to automatically compute schedules. Or, you can -skip constraints. +skip constraints.

    Index: openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-constraint-add-edit.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl 21 Aug 2003 22:34:43 -0000 1.4 +++ openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl 23 Aug 2003 00:24:34 -0000 1.5 @@ -20,6 +20,7 @@ task_revisions_list:optional const_type:array,optional const_task_id:array,optional + {project_item_id:integer ""} } -properties { @@ -40,8 +41,10 @@ set task_revisions [split $task_revisions_list " "] } -# get a parent project -set project_item_id [db_string get_parent_project { }] +if {[empty_string_p $project_item_id]} { + # get a parent project + set project_item_id [db_string get_parent_project { }] +} # terminology set project_term [parameter::get -parameter "ProjectName" -default "Project"] @@ -55,7 +58,7 @@ # permissions set title "Add $task_term_lower constraints" -set context_bar [ad_context_bar [list "one?item_id=$project_item_id" "One $project_term"] "New $task_term constraint"] +set context_bar [ad_context_bar [list "one?project_item_id=$project_item_id" "One $project_term"] "New $task_term constraint"] permission::require_permission -party_id $user_id -object_id $package_id -privilege create Index: openacs-4/contrib/packages/project-manager/www/task-one.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-one.tcl,v diff -u -r1.13 -r1.14 --- openacs-4/contrib/packages/project-manager/www/task-one.tcl 22 Aug 2003 00:27:33 -0000 1.13 +++ openacs-4/contrib/packages/project-manager/www/task-one.tcl 23 Aug 2003 00:24:34 -0000 1.14 @@ -65,7 +65,7 @@ db_1row get_project_ids { } -set context_bar [ad_context_bar "one?item_id=$project_item_id $project_term" "View"] +set context_bar [ad_context_bar "one?project_item_id=$project_item_id $project_term" "View"] # the unique identifier for this package