0001-ics-add-formdata-digest-to-ics-export-33152.patch
tests/test_api.py | ||
---|---|---|
2361 | 2361 |
formdef = FormDef() |
2362 | 2362 |
formdef.url_name = 'test' |
2363 | 2363 |
formdef.name = 'testé' |
2364 | 2364 |
formdef.workflow_roles = {'_receiver': role.id} |
2365 | 2365 |
formdef.fields = [ |
2366 | 2366 |
fields.StringField(id='0', label='foobar', varname='foobar'), |
2367 | 2367 |
fields.StringField(id='1', label='foobar2', varname='foobar2'), |
2368 | 2368 |
] |
2369 |
formdef.digest_template = 'plöp {{ form_var_foobar }} plÔp' |
|
2369 | 2370 |
formdef.store() |
2370 | 2371 | |
2371 | 2372 |
data_class = formdef.data_class() |
2372 | 2373 |
data_class.wipe() |
2373 | 2374 | |
2374 | 2375 |
date = datetime.datetime(2014, 1, 20, 12, 00) |
2375 | 2376 |
for i in range(30): |
2376 | 2377 |
formdata = data_class() |
... | ... | |
2424 | 2425 |
# check that description contains form name, display id, workflow status, |
2425 | 2426 |
# backoffice url and attached user |
2426 | 2427 |
pattern = re.compile(u'DESCRIPTION:testé \| 1-\d+ \| New', re.MULTILINE) |
2427 | 2428 |
m = pattern.findall(resp.text) |
2428 | 2429 |
assert len(m) == 10 |
2429 | 2430 |
assert resp.text.count('Jean Darmette') == 10 |
2430 | 2431 |
assert resp.text.count('DTSTART') == 10 |
2431 | 2432 | |
2433 |
# check formdata digest summary and description contains the formdata digest |
|
2434 |
pattern = re.compile( |
|
2435 |
r'SUMMARY:testé #1-\d+ - plöp \d{4}-\d{2}-\d{2} \d{2}:\d{2} plÔp', |
|
2436 |
re.MULTILINE) |
|
2437 |
m = pattern.findall(resp.text) |
|
2438 |
assert len(m) == 10 |
|
2439 |
assert resp.text.count(r'plöp') == 20 |
|
2440 | ||
2432 | 2441 |
# check with a filter |
2433 | 2442 |
resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar?filter=done', user=local_user)) |
2434 | 2443 |
assert resp.text.count('BEGIN:VEVENT') == 20 |
2435 | 2444 |
pattern = re.compile(u'DESCRIPTION:testé \| 1-\d+ \| Finished', re.MULTILINE) |
2436 | 2445 |
m = pattern.findall(resp.text) |
2437 | 2446 |
assert len(m) == 20 |
2438 | 2447 |
assert resp.text.count('Jean Darmette') == 20 |
2439 | 2448 |
wcs/backoffice/management.py | ||
---|---|---|
2198 | 2198 |
except ValueError: |
2199 | 2199 |
continue |
2200 | 2200 | |
2201 | 2201 |
vevent = vobject.newFromBehavior('vevent') |
2202 | 2202 |
vevent.add('uid').value = '%s-%s-%s' % ( |
2203 | 2203 |
get_request().get_server().lower(), |
2204 | 2204 |
formdef.url_name, |
2205 | 2205 |
formdata.id) |
2206 |
vevent.add('summary').value = force_text(formdata.get_display_name(), charset) |
|
2206 |
summary = force_text(formdata.get_display_name(), charset) |
|
2207 |
if formdata.digest: |
|
2208 |
summary += ' - %s' % force_text(formdata.digest, charset) |
|
2209 |
vevent.add('summary').value = summary |
|
2207 | 2210 |
vevent.add('dtstart').value = dtstart |
2208 | 2211 |
if dtend: |
2209 | 2212 |
vevent.add('dtend').value = dtend |
2210 | 2213 |
vevent.dtstart.value_param = 'DATE' |
2211 | 2214 |
backoffice_url = formdata.get_url(backoffice=True) |
2212 | 2215 |
vevent.add('url').value = backoffice_url |
2213 | 2216 |
form_name = force_text(formdef.name, charset) |
2214 | 2217 |
status_name = force_text(formdata.get_status_label(), charset) |
2215 | 2218 |
description = '%s | %s | %s\n' % (form_name, formdata.get_display_id(), status_name) |
2219 |
if formdata.digest: |
|
2220 |
description += '\n\n%s' % force_text(formdata.digest, charset) |
|
2216 | 2221 |
description += backoffice_url |
2217 | 2222 |
# TODO: improve performance by loading all users in one |
2218 | 2223 |
# single query before the loop |
2219 | 2224 |
if formdata.user: |
2220 | 2225 |
description += '\n%s' % force_text(formdata.user.get_display_name(), charset) |
2221 | 2226 |
vevent.add('description').value = description |
2222 | 2227 |
cal.add(vevent) |
2223 | 2228 | |
2224 |
- |