[gen] Bugfix: name clash when a transition is named 'comment'. [gen] Added AbstractWrapper::getHistoryComments allowing to collect comments of all history events of some type.
This commit is contained in:
parent
cf0309cb26
commit
424c0521de
|
@ -36,7 +36,7 @@ class Action(Field):
|
||||||
id=":formId" action=":zobj.absolute_url() + '/onExecuteAction'"
|
id=":formId" action=":zobj.absolute_url() + '/onExecuteAction'"
|
||||||
style="display:inline">
|
style="display:inline">
|
||||||
<input type="hidden" name="fieldName" value=":name"/>
|
<input type="hidden" name="fieldName" value=":name"/>
|
||||||
<input type="hidden" name="comment" value=""/>
|
<input type="hidden" name="popupComment" value=""/>
|
||||||
<input type="button" class=":css" title=":descr"
|
<input type="button" class=":css" title=":descr"
|
||||||
var="textConfirm=field.confirm and _(field.labelId+'_confirm') or '';
|
var="textConfirm=field.confirm and _(field.labelId+'_confirm') or '';
|
||||||
showComment=(field.confirm == 'text') and 'true' or 'false'"
|
showComment=(field.confirm == 'text') and 'true' or 'false'"
|
||||||
|
@ -91,10 +91,10 @@ class Action(Field):
|
||||||
else: return method(obj)
|
else: return method(obj)
|
||||||
|
|
||||||
def __call__(self, obj):
|
def __call__(self, obj):
|
||||||
'''Calls the action on p_obj.'''
|
'''Calls the action on p_obj'''
|
||||||
# Must we call the method(s) with a param ?
|
# Must we call the method(s) with a param ?
|
||||||
hasParam = self.confirm == 'text'
|
hasParam = self.confirm == 'text'
|
||||||
param = hasParam and obj.request.get('comment', None)
|
param = hasParam and obj.request.get('popupComment', None)
|
||||||
if type(self.action) in sutils.sequenceTypes:
|
if type(self.action) in sutils.sequenceTypes:
|
||||||
# There are multiple Python methods
|
# There are multiple Python methods
|
||||||
res = [True, '']
|
res = [True, '']
|
||||||
|
|
|
@ -425,7 +425,8 @@ class Transition:
|
||||||
'''Executed when a user wants to trigger this transition from the UI.'''
|
'''Executed when a user wants to trigger this transition from the UI.'''
|
||||||
tool = obj.getTool()
|
tool = obj.getTool()
|
||||||
# Trigger the transition
|
# Trigger the transition
|
||||||
msg = self.trigger(name, obj, wf, rq.get('comment', ''), reindex=False)
|
msg = self.trigger(name, obj, wf, rq.get('popupComment', ''),
|
||||||
|
reindex=False)
|
||||||
# Reindex obj if required
|
# Reindex obj if required
|
||||||
if not obj.isTemporary(): obj.reindex()
|
if not obj.isTemporary(): obj.reindex()
|
||||||
# If we are called from an Ajax request, simply return msg
|
# If we are called from an Ajax request, simply return msg
|
||||||
|
|
|
@ -989,11 +989,11 @@ function askConfirm(actionType, action, msg, showComment) {
|
||||||
|
|
||||||
// Transfer comment from the confirm form to some other form
|
// Transfer comment from the confirm form to some other form
|
||||||
function transferComment(confirmForm, targetForm) {
|
function transferComment(confirmForm, targetForm) {
|
||||||
if ((confirmForm.comment.style.display != 'none') &&
|
if ((confirmForm.popupComment.style.display != 'none') &&
|
||||||
(confirmForm.comment.value)) {
|
(confirmForm.popupComment.value)) {
|
||||||
targetForm.comment.value = confirmForm.comment.value;
|
targetForm.popupComment.value = confirmForm.popupComment.value;
|
||||||
// Clean the confirm form
|
// Clean the confirm form
|
||||||
confirmForm.comment.value = '';
|
confirmForm.popupComment.value = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ class AbstractWrapper(object):
|
||||||
<input type="hidden" name="action"/>
|
<input type="hidden" name="action"/>
|
||||||
<div id="commentArea" align=":dleft"><br/>
|
<div id="commentArea" align=":dleft"><br/>
|
||||||
<span class="discreet">:_('workflow_comment')</span>
|
<span class="discreet">:_('workflow_comment')</span>
|
||||||
<textarea name="comment" cols="30" rows="3"></textarea>
|
<textarea name="popupComment" cols="30" rows="3"></textarea>
|
||||||
<br/>
|
<br/>
|
||||||
</div><br/>
|
</div><br/>
|
||||||
<input type="button" onclick="doConfirm()" value=":_('yes')"/>
|
<input type="button" onclick="doConfirm()" value=":_('yes')"/>
|
||||||
|
@ -379,7 +379,7 @@ class AbstractWrapper(object):
|
||||||
style="display: inline" method="post">
|
style="display: inline" method="post">
|
||||||
<input type="hidden" name="transition"/>
|
<input type="hidden" name="transition"/>
|
||||||
<!-- Input field for storing the comment coming from the popup -->
|
<!-- Input field for storing the comment coming from the popup -->
|
||||||
<textarea id="comment" name="comment" cols="30" rows="3"
|
<textarea id="popupComment" name="popupComment" cols="30" rows="3"
|
||||||
style="display:none"></textarea>
|
style="display:none"></textarea>
|
||||||
<x for="transition in transitions">
|
<x for="transition in transitions">
|
||||||
<!-- Render a transition or a group of transitions. -->
|
<!-- Render a transition or a group of transitions. -->
|
||||||
|
@ -1291,6 +1291,17 @@ class AbstractWrapper(object):
|
||||||
if condition: return event
|
if condition: return event
|
||||||
i -= 1
|
i -= 1
|
||||||
|
|
||||||
|
def getHistoryComments(self, transition, xhtml=False):
|
||||||
|
'''Gets the concatenation of all comments for all transitions of type
|
||||||
|
p_transition in the object history.'''
|
||||||
|
res = []
|
||||||
|
for event in self.history:
|
||||||
|
if event['action'] != transition: continue
|
||||||
|
if not event['comments']: continue
|
||||||
|
res.append(event['comments'])
|
||||||
|
br = xhtml and '<br/>' or '\n'
|
||||||
|
return br.join(res)
|
||||||
|
|
||||||
def removeEvent(self, event):
|
def removeEvent(self, event):
|
||||||
'''Removes p_event from this object's history'''
|
'''Removes p_event from this object's history'''
|
||||||
res = []
|
res = []
|
||||||
|
|
Loading…
Reference in a new issue