Projet

Général

Profil

0001-ics-add-formdata-description-with-backoffice-url-184.patch

Serghei Mihai (congés, retour 15/05), 16 octobre 2017 18:19

Télécharger (3,05 ko)

Voir les différences:

Subject: [PATCH] ics: add formdata description with backoffice url (#18406)

 tests/test_api.py            | 13 +++++++++++++
 wcs/backoffice/management.py |  9 +++++++++
 2 files changed, 22 insertions(+)
tests/test_api.py
9 9
import base64
10 10
import hashlib
11 11
import mock
12
import re
12 13
import urllib
13 14
import urlparse
14 15
import datetime
......
1607 1608
    resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar', user=local_user))
1608 1609
    assert resp.headers['content-type'] == 'text/calendar; charset=utf-8'
1609 1610
    assert resp.body.count('BEGIN:VEVENT') == 10
1611
    # check that description contains form name, display id, workflow status,
1612
    # backoffice url and attached user
1613
    pattern = re.compile('DESCRIPTION:testé \| 1-\d+ \| New\s+http://example.net/backoffice/management/test/\d+/\s+(.+)', re.MULTILINE)
1614
    m = pattern.findall(resp.body)
1615
    assert len(m) == 10
1616
    for user in m:
1617
        assert user.strip() == 'Jean Darmette'
1610 1618

  
1611 1619
    # check with a filter
1612 1620
    resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar?filter=done', user=local_user))
1613 1621
    assert resp.body.count('BEGIN:VEVENT') == 20
1622
    pattern = re.compile('DESCRIPTION:testé \| 1-\d+ \| Finished\s+http://example.net/backoffice/management/test/\d+/\s+(.+)', re.MULTILINE)
1623
    m = pattern.findall(resp.body)
1624
    assert len(m) == 20
1625
    for user in m:
1626
        assert user.strip() == 'Jean Darmette'
1614 1627

  
1615 1628
    # check 404 on erroneous field var
1616 1629
    resp = get_app(pub).get(sign_uri('/api/forms/test/ics/xxx', user=local_user), status=404)
wcs/backoffice/management.py
1647 1647
                    vevent.add('dtstart').value = make_datetime(formdata.data[datefield_field_id])
1648 1648
                    vevent.dtstart.value_param = 'DATE'
1649 1649
                    vevent.add('url').value = formdata.get_url(backoffice=True)
1650
                    form_name = unicode(formdef.name, charset)
1651
                    status_name = unicode(formdata.get_status().name, charset)
1652
                    description = '%s | %s | %s' % (form_name, formdata.get_display_id(), status_name)
1653
                    description = description.ljust(74, ' ')
1654
                    description += formdata.get_url(backoffice=True).ljust(74, ' ')
1655
                    if formdata.user_id:
1656
                        description += unicode(formdata.user.get_display_name(), charset).ljust(74, ' ')
1657
                    vevent.add('description')
1658
                    vevent.description.value = description
1650 1659
                    cal.add(vevent)
1651 1660

  
1652 1661
                get_response().set_content_type('text/calendar')
1653
-