Projet

Général

Profil

0001-add-_rawdate-and-_rawdatetime-subst-variables-for-da.patch

Thomas Noël, 24 avril 2018 17:11

Télécharger (3,92 ko)

Voir les différences:

Subject: [PATCH] add _rawdate and _rawdatetime subst variables for date fields
 (#9876)

 tests/test_formdata.py | 21 ++++++++++++++++++++-
 wcs/formdata.py        |  5 ++++-
 2 files changed, 24 insertions(+), 2 deletions(-)
tests/test_formdata.py
1 1
import collections
2
import datetime
2 3
import pytest
3 4
import sys
4 5
import shutil
......
226 227

  
227 228
def test_date_field(pub):
228 229
    formdef.data_class().wipe()
229
    formdef.fields = [fields.DateField(id='0', label='date')]
230
    formdef.fields = [fields.DateField(id='0', label='date', varname='vardate')]
230 231
    formdef.store()
231 232
    formdata = formdef.data_class()()
232 233
    value = time.strptime('2015-05-12', '%Y-%m-%d')
......
237 238
    assert formdata2.data == {'0': value}
238 239

  
239 240
    assert formdata2.get_substitution_variables()['form_field_date'] == '2015-05-12'
241
    assert formdata2.get_substitution_variables()['form_var_vardate'] == '2015-05-12'
242
    assert formdata2.get_substitution_variables()['form_var_vardate_raw'] == value
243
    assert formdata2.get_substitution_variables()['form_var_vardate_rawdate'] == datetime.date(2015, 5, 12)
244
    assert formdata2.get_substitution_variables()['form_var_vardate_rawdatetime'] == datetime.datetime(2015, 5, 12, 0, 0)
240 245
    pub.cfg['language'] = {'language': 'fr'}
241 246
    assert formdata2.get_substitution_variables()['form_field_date'] == '12/05/2015'
247
    assert formdata2.get_substitution_variables()['form_var_vardate'] == '12/05/2015'
248
    assert formdata2.get_substitution_variables()['form_var_vardate_raw'] == value
249
    assert formdata2.get_substitution_variables()['form_var_vardate_rawdate'] == datetime.date(2015, 5, 12)
250
    assert formdata2.get_substitution_variables()['form_var_vardate_rawdatetime'] == datetime.datetime(2015, 5, 12, 0, 0)
242 251
    pub.cfg['language'] = {'language': 'en'}
243 252

  
253
    formdata.data = {'0': None}
254
    formdata.store()
255
    formdata2 = formdata.get(formdata.id)
256
    assert formdata2.data == {'0': None}
257
    assert formdata2.get_substitution_variables()['form_field_date'] == ''
258
    assert formdata2.get_substitution_variables()['form_var_vardate'] == ''
259
    assert 'form_var_vardate_raw' not in formdata2.get_substitution_variables()
260
    assert 'form_var_vardate_rawdate' not in formdata2.get_substitution_variables()
261
    assert 'form_var_vardate_rawdatetime' not in formdata2.get_substitution_variables()
262

  
244 263
def test_clean_drafts(pub):
245 264
    formdef = FormDef()
246 265
    formdef.name = 'foo'
wcs/formdata.py
28 28
from qommon import _
29 29
from qommon.storage import StorableObject, Intersects, Contains
30 30
import qommon.misc
31
from qommon.evalutils import make_datetime
31
from qommon.evalutils import make_datetime, make_date
32 32
from qommon.substitution import Substitutions, invalidate_substitution_cache
33 33
from qommon.template import Template
34 34

  
......
77 77
                                    formdata.get_url(), field.id)
78 78
                elif raw_value is not None:
79 79
                    new_data['var_%s_raw' % field.varname] = raw_value
80
                    if field.key == 'date':
81
                        new_data['var_%s_rawdate' % field.varname] = make_date(raw_value)
82
                        new_data['var_%s_rawdatetime' % field.varname] = make_datetime(raw_value)
80 83
            if field.store_structured_value and data is not None:
81 84
                structured_value = data.get('%s_structured' % field.id)
82 85
                if type(structured_value) is dict:
83
-