0001-ics-allow-description-rendering-in-custom-templates-.patch
tests/test_api.py | ||
---|---|---|
1573 | 1573 |
formdef.workflow_roles = {'_receiver': role.id} |
1574 | 1574 |
formdef.fields = [ |
1575 | 1575 |
fields.StringField(id='0', label='foobar', varname='foobar'), |
1576 |
fields.StringField(id='1', label='text', varname='text') |
|
1576 | 1577 |
] |
1577 | 1578 |
formdef.store() |
1578 | 1579 | |
... | ... | |
1582 | 1583 |
date = datetime.datetime(2014, 1, 20, 12, 00) |
1583 | 1584 |
for i in range(30): |
1584 | 1585 |
formdata = data_class() |
1585 |
formdata.data = {'0': (date + datetime.timedelta(days=i)).strftime('%Y-%m-%d %H:%M')} |
|
1586 |
formdata.data = {'0': (date + datetime.timedelta(days=i)).strftime('%Y-%m-%d %H:%M'), |
|
1587 |
'1': 'valu\xc3\xa9 %s' % i} |
|
1586 | 1588 |
formdata.user_id = local_user.id |
1587 | 1589 |
formdata.just_created() |
1588 | 1590 |
if i%3 == 0: |
... | ... | |
1607 | 1609 |
resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar', user=local_user)) |
1608 | 1610 |
assert resp.headers['content-type'] == 'text/calendar; charset=utf-8' |
1609 | 1611 |
assert resp.body.count('BEGIN:VEVENT') == 10 |
1612 |
assert resp.body.count('DESCRIPTION') == 10 |
|
1610 | 1613 | |
1611 | 1614 |
# check with a filter |
1612 | 1615 |
resp = get_app(pub).get(sign_uri('/api/forms/test/ics/foobar?filter=done', user=local_user)) |
1613 | 1616 |
assert resp.body.count('BEGIN:VEVENT') == 20 |
1617 |
assert resp.body.count('DESCRIPTION') == 20 |
|
1614 | 1618 | |
1615 | 1619 |
# check 404 on erroneous field var |
1616 | 1620 |
resp = get_app(pub).get(sign_uri('/api/forms/test/ics/xxx', user=local_user), status=404) |
wcs/backoffice/management.py | ||
---|---|---|
46 | 46 |
from qommon import errors |
47 | 47 |
from qommon import ezt |
48 | 48 |
from qommon import ods |
49 |
from qommon import template |
|
49 | 50 |
from qommon.form import * |
50 | 51 |
from qommon.storage import (Equal, NotEqual, LessOrEqual, GreaterOrEqual, Or, |
51 | 52 |
Intersects, ILike, FtsMatch, Contains, Null) |
... | ... | |
59 | 60 |
from wcs.formdef import FormDef |
60 | 61 |
from wcs.roles import logged_users_role |
61 | 62 | |
63 |
from django.template import RequestContext |
|
64 | ||
62 | 65 |
from .submission import FormFillPage |
63 | 66 | |
64 | 67 |
def geojson_formdatas(formdatas, geoloc_key='base', fields=None): |
... | ... | |
1616 | 1619 |
fields = self.get_fields_from_query() |
1617 | 1620 |
criterias = self.get_criterias_from_query() |
1618 | 1621 |
query = get_request().form.get('q') |
1622 |
template_names = ('wcs/ics/description/%s.txt' % formdef.url_name, 'wcs/ics/description.txt') |
|
1619 | 1623 | |
1620 | 1624 |
class IcsDirectory(Directory): |
1621 | 1625 |
# ics/<component> with <component> being the identifier (varname) |
... | ... | |
1647 | 1651 |
vevent.add('dtstart').value = make_datetime(formdata.data[datefield_field_id]) |
1648 | 1652 |
vevent.dtstart.value_param = 'DATE' |
1649 | 1653 |
vevent.add('url').value = formdata.get_url(backoffice=True) |
1654 |
context = RequestContext(get_request().django_request, {'form': formdata.get_as_dict()}) |
|
1655 |
vevent.add('description').value = unicode(template.render(template_names, context)) |
|
1650 | 1656 |
cal.add(vevent) |
1651 | 1657 | |
1652 | 1658 |
get_response().set_content_type('text/calendar') |
wcs/templates/wcs/ics/description.txt | ||
---|---|---|
1 | ||
0 |
- |