From 610c387460a59e408369dcfafd8111205516ec44 Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Wed, 4 Oct 2017 13:51:54 +0200 Subject: [PATCH] ics: add formdata description with backoffice url (#18406) --- tests/test_api.py | 10 ++++++---- wcs/backoffice/management.py | 2 ++ wcs/templates/wcs/ics/description.txt | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 wcs/templates/wcs/ics/description.txt diff --git a/tests/test_api.py b/tests/test_api.py index 43ac6367..754fd51d 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -133,7 +133,7 @@ def test_get_user_from_api_query_string_error_missing_timestamp(pub): signature = urllib.quote( base64.b64encode( hmac.new('1234', - 'format=json&orig=coucou&algo=sha1', + 'format=json&orig=coucou&algo=sha1', hashlib.sha1).digest())) output = get_app(pub).get('/api/user/?format=json&orig=coucou&algo=sha1&signature=%s' % signature, status=403) assert output.json['err_desc'] == 'missing/multiple timestamp field' @@ -144,7 +144,7 @@ def test_get_user_from_api_query_string_error_missing_email(pub): signature = urllib.quote( base64.b64encode( hmac.new('1234', - query, + query, hashlib.sha1).digest())) output = get_app(pub).get('/api/user/?%s&signature=%s' % (query, signature), status=403) assert output.json['err_desc'] == 'no user specified' @@ -195,7 +195,7 @@ def test_get_user_from_api_query_string_error_success_sha1(pub, local_user): signature = urllib.quote( base64.b64encode( hmac.new('1234', - query, + query, hashlib.sha1).digest())) output = get_app(pub).get('/api/user/?%s&signature=%s' % (query, signature)) assert output.json['user_display_name'] == u'Jean Darmette' @@ -206,7 +206,7 @@ def test_get_user_from_api_query_string_error_invalid_signature_algo_mismatch(pu signature = urllib.quote( base64.b64encode( hmac.new('1234', - query, + query, hashlib.sha1).digest())) output = get_app(pub).get('/api/user/?%s&signature=%s' % (query, signature), status=403) assert output.json['err_desc'] == 'invalid signature' @@ -1607,10 +1607,12 @@ def test_api_ics_formdata(pub, local_user, ics_data): resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar', user=local_user)) assert resp.headers['content-type'] == 'text/calendar; charset=utf-8' assert resp.body.count('BEGIN:VEVENT') == 10 + assert resp.body.count('DESCRIPTION:http://example.net/backoffice/management/test/') == 10 # check with a filter resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar?filter=done', user=local_user)) assert resp.body.count('BEGIN:VEVENT') == 20 + assert resp.body.count('DESCRIPTION:http://example.net/backoffice/management/test/') == 20 # check 404 on erroneous field var resp = get_app(pub).get(sign_uri('/api/forms/test/ics/xxx', user=local_user), status=404) diff --git a/wcs/backoffice/management.py b/wcs/backoffice/management.py index eb1c8b22..814e3f3f 100644 --- a/wcs/backoffice/management.py +++ b/wcs/backoffice/management.py @@ -1647,6 +1647,8 @@ class FormPage(Directory): vevent.add('dtstart').value = make_datetime(formdata.data[datefield_field_id]) vevent.dtstart.value_param = 'DATE' vevent.add('url').value = formdata.get_url(backoffice=True) + context = RequestContext(get_request().django_request, {'form': formdata.get_as_dict()}) + vevent.add('description').value = formdata.get_url(backoffice=True) cal.add(vevent) get_response().set_content_type('text/calendar') diff --git a/wcs/templates/wcs/ics/description.txt b/wcs/templates/wcs/ics/description.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/wcs/templates/wcs/ics/description.txt @@ -0,0 +1 @@ + -- 2.14.2