0001-fields-display-ItemsField-using-ul-on-summary-page-4.patch
tests/test_fields.py | ||
---|---|---|
155 | 155 |
assert field.get_options() == [('1', 'foo', '1'), ('2', 'bar', '2')] |
156 | 156 |
assert field.get_options() == [('1', 'foo', '1'), ('2', 'bar', '2')] # twice for cached behaviour |
157 | 157 | |
158 |
# html display |
|
159 |
view_value = fields.ItemsField(items=['a', 'b', 'c']).get_view_value('a, b', value_id=['a', 'b']) |
|
160 |
elems = BeautifulSoup(str(view_value)).find('ul').find_all('li') |
|
161 |
assert len(elems) == 2 |
|
162 |
assert elems[0].text == 'a' |
|
163 |
assert elems[1].text == 'b' |
|
164 | ||
165 |
field = fields.ItemsField() |
|
166 |
view_value = field.get_view_value('a, b', value_id=['1', '2'], text=['a', 'b']) |
|
167 |
elems = BeautifulSoup(str(view_value)).find('ul').find_all('li') |
|
168 |
assert len(elems) == 2 |
|
169 |
assert elems[0].text == 'a' |
|
170 |
assert elems[1].text == 'b' |
|
171 | ||
158 | 172 | |
159 | 173 |
def test_password(): |
160 | 174 |
assert fields.PasswordField().get_view_value('xxx') == '●' * 8 |
wcs/fields.py | ||
---|---|---|
2224 | 2224 |
except TypeError: |
2225 | 2225 |
raise ValueError('invalid data for items type (%r)' % value) |
2226 | 2226 | |
2227 |
def get_value_info(self, data): |
|
2228 |
value, value_details = super().get_value_info(data) |
|
2229 |
structured_values = self.get_structured_value(data) |
|
2230 |
if structured_values: |
|
2231 |
value_details['text'] = [] |
|
2232 |
for structured_value in structured_values: |
|
2233 |
value_details['text'].append(structured_value['text']) |
|
2234 |
return (value, value_details) |
|
2235 | ||
2227 | 2236 |
def get_view_value(self, value, **kwargs): |
2237 |
if 'value_id' in kwargs: |
|
2238 |
# summary page |
|
2239 |
labels = kwargs.get('text') or kwargs['value_id'] |
|
2240 |
r = TemplateIO(html=True) |
|
2241 |
r += htmltext('<ul>') |
|
2242 |
for x in labels: |
|
2243 |
r += htmltext('<li>%s</li>' % x) |
|
2244 |
r += htmltext('</ul>') |
|
2245 |
return r.getvalue() |
|
2246 | ||
2228 | 2247 |
if type(value) is str: # == display_value |
2229 | 2248 |
return value |
2230 | 2249 |
if value: |
wcs/qommon/static/css/qommon.scss | ||
---|---|---|
299 | 299 |
div.dataview .value { |
300 | 300 |
display: block; |
301 | 301 |
margin-left: 1em; |
302 |
ul { |
|
303 |
margin-top: 0; |
|
304 |
margin-bottom : 0; |
|
305 |
} |
|
302 | 306 |
} |
303 | 307 | |
304 | 308 |
form div.page, |
305 |
- |