Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-workflow
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
intranet-workflow
Commits
469173d4
Commit
469173d4
authored
Apr 20, 2023
by
Frank Bergmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP fixing reset case
parent
6d8054fd
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
46 deletions
+40
-46
reset-case-2.tcl
www/reset-case-2.tcl
+36
-42
reset-case.adp
www/reset-case.adp
+1
-1
reset-case.tcl
www/reset-case.tcl
+3
-3
No files found.
www/reset-case-2.tcl
View file @
469173d4
...
...
@@ -13,7 +13,7 @@ ad_page_contract {
{
button_cancel
""
}
{
button_confirm
""
}
{
task_id:integer 0
}
{
project
_id:integer 0
}
{
case
_id:integer 0
}
return_url
{
place_key
"tagged"
}
{
action_pretty
""
}
...
...
@@ -24,7 +24,8 @@ ad_page_contract {
# ---------------------------------------------------------------------
set
user_id
[
auth::require_login
]
set
page_title
"RFC löschen"
set
peer_ip
[
ad_conn peeraddr
]
set
page_title
[
lang::message::lookup
""
intranet-workflow.Reset_Workflow_Case
"Reset Workflow Case"
]
set
date_format
"YYYY-MM-DD"
set
bgcolor
(
0
)
" class=roweven"
...
...
@@ -36,47 +37,29 @@ set bgcolor(1) " class=rowodd"
if
{
""
!=
$button
_confirm
}
{
# Get the general case_id
#
"Cancel"
all the task in the current case
set case_id
[
db_string case
"select case_id from wf_tasks where task_id = :task_id"
-default 0
]
if
{
0 ==
$case
_id
}
{
set case_id
[
db_string case
2
"select case_id from wf_cases where object_id = :project
_id"
-default 0
]
set case_id
[
db_string case
"select case_id from wf_tasks where task_id = :task
_id"
-default 0
]
}
# Reactivate...
if
{
"before_fullfill_rfc"
==
$place
_key
}
{
db_dml delete_end_token
"
delete from wf_tokens
where case_id = :case_id
and place_key = 'end'
"
db_dml update_cases
"
update wf_cases
set state = 'active'
where case_id = :case_id
"
db_dml update_projects
"
update im_projects
set project_status_id =
[
im_project_status_open
]
where project_id = :project_id
"
im_audit -object_id
$project
_id
if
{
0 ==
$case
_id
}
{
ad_return_complaint 1
"Didn't find case_id"
ad_script_abort
}
}
# Get the places of tokens before canceling the case
set places
[
db_list token_in_places
"select place_key||':'||state from wf_tokens where case_id = :case_id and state in ('free', 'locked')"
]
set reset_message
"Resetting workflow case #
$case
_id with tokens in
[
join
$places
", "
]
"
# if
{[
llength
$places
]
== 0
}
{
set message
"Resetting Workflow with no tokens active"
}
# set case_journal_id
[
im_workflow_new_journal -case_id
$case
_id -action
"reset_workflow"
-action_pretty
"Reset Workflow"
-message
$message
]
ns_log Notice
"new-rfc: case_id=
$case
_id"
set journal_id
""
# Delete all tokens of the case
db_dml delete_tokens
"
delete from wf_tokens
where case_id = :case_id
and state in ('free', 'locked')
"
# Make sure the case is active
db_dml update_case
"update wf_cases set state = 'active' where case_id = :case_id"
# Delete active tokens, leave old ones in their places
db_dml delete_tokens
"delete from wf_tokens where case_id = :case_id and state in ('free', 'locked')"
set tasks_sql
"
select task_id as wf_task_id
...
...
@@ -86,13 +69,24 @@ if {"" != $button_confirm} {
"
db_foreach tasks
$tasks
_sql
{
ns_log Notice
"new-rfc: canceling task
$wf
_task_id"
set journal_id
[
im_workflow_task_action -task_id
$wf
_task_id -action
"cancel"
-message
"Reassigning task"
]
set message
"Canceling task #
$task
_id in case #
$case
_id as part of WF reset"
set journal_id
[
im_workflow_new_journal -case_id
$case
_id -action
"cancel"
-action_pretty
"Cancel Task"
-message
$message
]
db_string cancel_task
"select workflow_case__cancel_task(:wf_task_id, :journal_id)"
# set journal_id
[
im_workflow_task_action -task_id
$wf
_task_id -action
"cancel"
-message
"Cancel task"
]
}
ns_log Notice
"new-rfc: adding a token to place=
$place
_key"
im_exec_dml add_token
"workflow_case__add_token (:case_id, :place_key, :journal_id)"
# enable the very first transition
im_exec_dml sweep
"workflow_case__sweep_automatic_transitions (:case_id, :journal_id)"
db_string start
"select workflow_case__start_case(:case_id, :user_id, :peer_ip, :reset_message)"
# Re-activate the case. Not sure why the case can get
"finished"
during wf__start_case, but it seems to happen...
# db_dml update_case
"update wf_cases set state = 'active' where case_id = :case_id"
# Skip the very first transition as always
# im_workflow_skip_first_transition -case_id
$case
_id
# Continue to
"move
# set sweep_journal_id
[
im_workflow_new_journal -case_id
$case
_id -action
"sweep"
-action_pretty
"Sweeping workflow"
-message
"Sweeping workflow"
]
# im_exec_dml sweep "
workflow_case__sweep_automatic_transitions
(
:case_id, :sweep_journal_id
)
"
}
www/reset-case.adp
View file @
469173d4
...
...
@@ -8,7 +8,7 @@
<p> </p>
<form action=reset-case-2 method=POST>
<%= [export_vars -form {return_url
project
_id task_id place_key action_pretty}] %>
<%= [export_vars -form {return_url
case
_id task_id place_key action_pretty}] %>
<input type="submit" name="button_cancel" value="<%= [lang::message::lookup "" intranet-workflow.Cancel_Button "Cancel"] %>">
<input type="submit" name="button_confirm" value="<%= [lang::message::lookup "" intranet-workflow.Confirm_Button "Confirm %action_pretty%"] %>">
</form>
www/reset-case.tcl
View file @
469173d4
...
...
@@ -11,9 +11,9 @@ ad_page_contract {
@author Frank Bergmann
(
frank.bergmann@project-open.com
)
}
{
{
task_id:integer 0
}
{
project
_id:integer 0
}
{
case
_id:integer 0
}
{
place_key
"tagged"
}
{
action_pretty
"
löschen
"
}
{
action_pretty
"
Undefined
"
}
{
return_url
""
}
}
...
...
@@ -22,7 +22,7 @@ ad_page_contract {
# ---------------------------------------------------------------------
set
user_id
[
auth::require_login
]
set
page_title
"RFC
$action
_pretty"
set
page_title
[
lang::message::lookup
""
intranet-workflow.Reset_Workflow_Case
"Reset Workflow Case"
]
set
date_format
"YYYY-MM-DD"
set
bgcolor
(
0
)
" class=roweven"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment