0001-ics-add-formdata-digest-to-ics-export-33152.patch
tests/test_api.py | ||
---|---|---|
2253 | 2253 |
formdef = FormDef() |
2254 | 2254 |
formdef.url_name = 'test' |
2255 | 2255 |
formdef.name = 'testé' |
2256 | 2256 |
formdef.workflow_roles = {'_receiver': role.id} |
2257 | 2257 |
formdef.fields = [ |
2258 | 2258 |
fields.StringField(id='0', label='foobar', varname='foobar'), |
2259 | 2259 |
fields.StringField(id='1', label='foobar2', varname='foobar2'), |
2260 | 2260 |
] |
2261 |
formdef.digest_template = 'plop {{ form_var_foobar }} plop' |
|
2261 | 2262 |
formdef.store() |
2262 | 2263 | |
2263 | 2264 |
data_class = formdef.data_class() |
2264 | 2265 |
data_class.wipe() |
2265 | 2266 | |
2266 | 2267 |
date = datetime.datetime(2014, 1, 20, 12, 00) |
2267 | 2268 |
for i in range(30): |
2268 | 2269 |
formdata = data_class() |
... | ... | |
2303 | 2304 |
# check that description contains form name, display id, workflow status, |
2304 | 2305 |
# backoffice url and attached user |
2305 | 2306 |
pattern = re.compile(u'DESCRIPTION:testé \| 1-\d+ \| New', re.MULTILINE) |
2306 | 2307 |
m = pattern.findall(resp.text) |
2307 | 2308 |
assert len(m) == 10 |
2308 | 2309 |
assert resp.text.count('Jean Darmette') == 10 |
2309 | 2310 |
assert resp.text.count('DTSTART') == 10 |
2310 | 2311 | |
2312 |
# check formdata digest summary and description contains the formdata digest |
|
2313 |
pattern = re.compile( |
|
2314 |
u'SUMMARY:testé #1-\d+ : plop \d{4}-\d{2}-\d{2} \d{2}:\d{2} plop', |
|
2315 |
re.MULTILINE) |
|
2316 |
m = pattern.findall(resp.text) |
|
2317 |
assert len(m) == 10 |
|
2318 |
assert resp.text.count('plop') == 40 |
|
2319 | ||
2311 | 2320 |
# check with a filter |
2312 | 2321 |
resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar?filter=done', user=local_user)) |
2313 | 2322 |
assert resp.text.count('BEGIN:VEVENT') == 20 |
2314 | 2323 |
pattern = re.compile(u'DESCRIPTION:testé \| 1-\d+ \| Finished', re.MULTILINE) |
2315 | 2324 |
m = pattern.findall(resp.text) |
2316 | 2325 |
assert len(m) == 20 |
2317 | 2326 |
assert resp.text.count('Jean Darmette') == 20 |
2318 | 2327 |
wcs/backoffice/management.py | ||
---|---|---|
1951 | 1951 |
for formdata in formdatas: |
1952 | 1952 |
if not formdata.data.get(start_date_field_id): |
1953 | 1953 |
continue |
1954 | 1954 |
vevent = vobject.newFromBehavior('vevent') |
1955 | 1955 |
vevent.add('uid').value = '%s-%s-%s' % ( |
1956 | 1956 |
get_request().get_server().lower(), |
1957 | 1957 |
formdef.url_name, |
1958 | 1958 |
formdata.id) |
1959 |
vevent.add('summary').value = force_text(formdata.get_display_name(), charset) |
|
1959 |
summary = force_text(formdata.get_display_name(), charset) |
|
1960 |
if formdata.digest: |
|
1961 |
summary += ' : %s' % formdata.digest |
|
1962 |
vevent.add('summary').value = summary |
|
1960 | 1963 |
vevent.add('dtstart').value = make_datetime(formdata.data[start_date_field_id]) |
1961 | 1964 |
if end_date_field_id and formdata.data.get(end_date_field_id): |
1962 | 1965 |
vevent.add('dtend').value = make_datetime(formdata.data[end_date_field_id]) |
1963 | 1966 |
vevent.dtstart.value_param = 'DATE' |
1964 | 1967 |
backoffice_url = formdata.get_url(backoffice=True) |
1965 | 1968 |
vevent.add('url').value = backoffice_url |
1966 | 1969 |
form_name = force_text(formdef.name, charset) |
1967 | 1970 |
status_name = force_text(formdata.get_status_label(), charset) |
1968 | 1971 |
description = '%s | %s | %s\n' % (form_name, formdata.get_display_id(), status_name) |
1969 | 1972 |
description += backoffice_url |
1970 | 1973 |
# TODO: improve performance by loading all users in one |
1971 | 1974 |
# single query before the loop |
1972 | 1975 |
if formdata.user: |
1973 | 1976 |
description += '\n%s' % force_text(formdata.user.get_display_name(), charset) |
1977 |
if formdata.digest: |
|
1978 |
description += '\n\n%s' % formdata.digest |
|
1974 | 1979 |
vevent.add('description').value = description |
1975 | 1980 |
cal.add(vevent) |
1976 | 1981 | |
1977 | 1982 |
get_response().set_content_type('text/calendar') |
1978 | 1983 |
return cal.serialize() |
1979 | 1984 | |
1980 | 1985 |
return IcsDirectory() |
1981 | 1986 | |
1982 |
- |