0001-workflows-make-resubmit-work-with-anonymous-users-30.patch
tests/test_form_pages.py | ||
---|---|---|
4984 | 4984 |
resp = resp.follow() |
4985 | 4985 |
assert resp.forms[1]['f2'].value == 'XXX' |
4986 | 4986 | |
4987 |
# anonymous |
|
4988 |
formdef2.data_class().wipe() |
|
4989 |
app = get_app(pub) |
|
4990 |
resp = app.get('/form-title/') |
|
4991 |
resp.form['f1'] = 'foo' |
|
4992 |
resp = resp.form.submit('submit') # -> validation |
|
4993 |
resp = resp.form.submit('submit') # -> submission |
|
4994 |
resp = resp.follow() |
|
4995 |
resp = resp.form.submit('button_resubmit') |
|
4996 |
resp = resp.follow() |
|
4997 |
assert 'new draft' in resp.body |
|
4998 |
assert formdef2.data_class().select()[0].status == 'draft' |
|
4999 |
assert formdef2.data_class().select()[0].data.get('1') is None |
|
5000 |
assert formdef2.data_class().select()[0].data.get('2') == 'foo' |
|
5001 |
resp = resp.click('new draft') |
|
5002 |
resp = resp.follow() |
|
5003 |
assert resp.forms[1]['f2'].value == 'foo' |
|
5004 | ||
4987 | 5005 |
def test_form_custom_select_template(pub): |
4988 | 5006 |
formdef = create_formdef() |
4989 | 5007 |
formdef.fields = [ |
wcs/forms/root.py | ||
---|---|---|
1259 | 1259 |
return redirect(get_publisher().get_backoffice_url() + '/submission/') |
1260 | 1260 |
return PublicFormStatusPage(self.formdef, filled) |
1261 | 1261 | |
1262 |
if not (get_request().is_in_backoffice() or self.has_draft_support()): |
|
1262 |
session = get_session() |
|
1263 |
if not (get_request().is_in_backoffice() or |
|
1264 |
self.has_draft_support() or |
|
1265 |
session.is_anonymous_submitter(filled)): |
|
1263 | 1266 |
# don't allow restoring drafts if drafts are no longer enabled for |
1264 | 1267 |
# this form. |
1265 | 1268 |
raise errors.AccessForbiddenError() |
1266 | 1269 | |
1267 |
session = get_session() |
|
1268 | 1270 |
if not (get_request().is_in_backoffice() and filled.backoffice_submission): |
1269 | 1271 |
if session.is_anonymous_submitter(filled): |
1270 | 1272 |
pass |
wcs/wf/resubmit.py | ||
---|---|---|
14 | 14 |
# You should have received a copy of the GNU General Public License |
15 | 15 |
# along with this program; if not, see <http://www.gnu.org/licenses/>. |
16 | 16 | |
17 |
from quixote import get_publisher, get_request |
|
17 |
from quixote import get_publisher, get_request, get_session
|
|
18 | 18 | |
19 | 19 |
from qommon import _ |
20 | 20 |
from wcs.workflows import WorkflowStatusItem, register_item_class |
... | ... | |
110 | 110 |
} |
111 | 111 |
formdata.update_workflow_data(workflow_data) |
112 | 112 |
formdata.store() |
113 |
if formdata.user_id is None and not new_formdata.backoffice_submission: |
|
114 |
get_session().mark_anonymous_formdata(new_formdata) |
|
113 | 115 | |
114 | 116 |
def add_parameters_widgets(self, form, parameters, prefix='', formdef=None): |
115 | 117 |
super(ResubmitWorkflowStatusItem, self).add_parameters_widgets( |
116 |
- |