2073 |
2073 |
|
2074 |
2074 |
|
2075 |
2075 |
@mock.patch('combo.apps.wcs.utils.requests.send', side_effect=mocked_requests_send)
|
2076 |
|
def test_card_cell_render_custom_schema(mock_send, context, app):
|
|
2076 |
def test_card_cell_render_custom_schema_card_field(mock_send, context):
|
2077 |
2077 |
page = Page.objects.create(title='xxx', template_name='standard')
|
2078 |
|
cell = WcsCardInfosCell(page=page, placeholder='content', order=0)
|
2079 |
|
cell.carddef_reference = 'default:card_model_1'
|
2080 |
|
cell.custom_schema = {
|
2081 |
|
'cells': [
|
2082 |
|
{'varname': 'fielda', 'display_mode': 'title'},
|
2083 |
|
]
|
2084 |
|
}
|
2085 |
|
cell.save()
|
|
2078 |
cell = WcsCardInfosCell.objects.create(
|
|
2079 |
page=page,
|
|
2080 |
placeholder='content',
|
|
2081 |
order=0,
|
|
2082 |
carddef_reference='default:card_model_1',
|
|
2083 |
custom_schema={'cells': [{'varname': 'fielda', 'field_content': 'value', 'display_mode': 'title'}]},
|
|
2084 |
)
|
2086 |
2085 |
|
2087 |
2086 |
context['card_model_1_id'] = 11
|
2088 |
2087 |
request = RequestFactory().get('/')
|
... | ... | |
2093 |
2092 |
result = cell.render(context)
|
2094 |
2093 |
assert PyQuery(result).find('h3').text() == 'a'
|
2095 |
2094 |
|
2096 |
|
# custom field
|
2097 |
|
cell.custom_schema = {
|
2098 |
|
'cells': [
|
2099 |
|
{'varname': '@custom@', 'template': '<b>Foo</b> bar baz', 'display_mode': 'title'},
|
2100 |
|
]
|
|
2095 |
cell.custom_schema['cells'][0] = {'varname': 'fielda', 'field_content': 'label', 'display_mode': 'title'}
|
|
2096 |
cell.save()
|
|
2097 |
result = cell.render(context)
|
|
2098 |
assert PyQuery(result).find('h3').text() == 'Field A'
|
|
2099 |
|
|
2100 |
cell.custom_schema['cells'][0] = {'varname': 'fielda', 'field_content': 'label', 'display_mode': 'text'}
|
|
2101 |
cell.save()
|
|
2102 |
result = cell.render(context)
|
|
2103 |
assert PyQuery(result).find('p.label').text() == 'Field A'
|
|
2104 |
|
|
2105 |
cell.custom_schema['cells'][0] = {'varname': 'fielda', 'field_content': 'value', 'display_mode': 'text'}
|
|
2106 |
cell.save()
|
|
2107 |
result = cell.render(context)
|
|
2108 |
assert PyQuery(result).find('span.value').text() == 'a'
|
|
2109 |
|
|
2110 |
cell.custom_schema['cells'][0] = {
|
|
2111 |
'varname': 'fielda',
|
|
2112 |
'field_content': 'label-and-value',
|
|
2113 |
'display_mode': 'text',
|
|
2114 |
}
|
|
2115 |
cell.save()
|
|
2116 |
result = cell.render(context)
|
|
2117 |
assert PyQuery(result).find('p.label').text() == 'Field A'
|
|
2118 |
assert PyQuery(result).find('span.value').text() == 'a'
|
|
2119 |
|
|
2120 |
cell.custom_schema['cells'][0] = {
|
|
2121 |
'varname': 'fieldb',
|
|
2122 |
'field_content': 'label-and-value',
|
|
2123 |
'display_mode': 'text',
|
|
2124 |
}
|
|
2125 |
cell.save()
|
|
2126 |
result = cell.render(context)
|
|
2127 |
assert PyQuery(result).find('p.label').text() == 'Field B'
|
|
2128 |
assert PyQuery(result).find('span.value').text() == 'yes'
|
|
2129 |
|
|
2130 |
cell.custom_schema['cells'][0] = {
|
|
2131 |
'varname': 'fieldc',
|
|
2132 |
'field_content': 'label-and-value',
|
|
2133 |
'display_mode': 'text',
|
|
2134 |
}
|
|
2135 |
cell.save()
|
|
2136 |
result = cell.render(context)
|
|
2137 |
assert PyQuery(result).find('p.label').text() == 'Field C'
|
|
2138 |
assert PyQuery(result).find('span.value').text() == 'Sept. 28, 2020'
|
|
2139 |
|
|
2140 |
cell.custom_schema['cells'][0] = {
|
|
2141 |
'varname': 'related',
|
|
2142 |
'field_content': 'label-and-value',
|
|
2143 |
'display_mode': 'text',
|
2101 |
2144 |
}
|
2102 |
2145 |
cell.save()
|
|
2146 |
result = cell.render(context)
|
|
2147 |
assert PyQuery(result).find('p.label').text() == 'Related'
|
|
2148 |
assert PyQuery(result).find('span.value').text() == 'Foo Bar'
|
|
2149 |
|
|
2150 |
cell.custom_schema['cells'][0] = {
|
|
2151 |
'varname': 'fieldd',
|
|
2152 |
'field_content': 'label-and-value',
|
|
2153 |
'display_mode': 'text',
|
|
2154 |
}
|
|
2155 |
cell.save()
|
|
2156 |
result = cell.render(context)
|
|
2157 |
assert PyQuery(result).find('p.label').text() == 'Field D'
|
|
2158 |
assert PyQuery(result).find('span.value').text() == 'file.pdf'
|
|
2159 |
|
|
2160 |
cell.custom_schema['cells'][0] = {
|
|
2161 |
'varname': 'fielde',
|
|
2162 |
'field_content': 'label-and-value',
|
|
2163 |
'display_mode': 'text',
|
|
2164 |
}
|
|
2165 |
cell.save()
|
|
2166 |
result = cell.render(context)
|
|
2167 |
assert PyQuery(result).find('p.label').text() == 'Field E'
|
|
2168 |
assert PyQuery(result).find('div.value p:first-child').text().strip() == 'lorem<strong>ipsum'
|
|
2169 |
assert PyQuery(result).find('div.value p:last-child').text().strip() == 'hello world'
|
|
2170 |
|
|
2171 |
cell.custom_schema['cells'][0] = {
|
|
2172 |
'varname': 'fieldf',
|
|
2173 |
'field_content': 'label-and-value',
|
|
2174 |
'display_mode': 'text',
|
|
2175 |
}
|
|
2176 |
cell.save()
|
|
2177 |
result = cell.render(context)
|
|
2178 |
assert PyQuery(result).find('p.label').text() == 'Field F'
|
|
2179 |
assert PyQuery(result).find('div.value pre').text() == 'lorem<strong>ipsum hello world'
|
|
2180 |
|
|
2181 |
cell.custom_schema['cells'][0] = {
|
|
2182 |
'varname': 'fieldg',
|
|
2183 |
'field_content': 'label-and-value',
|
|
2184 |
'display_mode': 'text',
|
|
2185 |
}
|
|
2186 |
cell.save()
|
|
2187 |
result = cell.render(context)
|
|
2188 |
assert PyQuery(result).find('p.label').text() == 'Field G'
|
|
2189 |
assert PyQuery(result).find('span.value a').text() == 'test@localhost'
|
|
2190 |
assert PyQuery(result).find('span.value a').attr['href'] == 'mailto:test@localhost'
|
|
2191 |
|
|
2192 |
cell.custom_schema['cells'][0] = {
|
|
2193 |
'varname': 'fieldh',
|
|
2194 |
'field_content': 'label-and-value',
|
|
2195 |
'display_mode': 'text',
|
|
2196 |
}
|
|
2197 |
cell.save()
|
|
2198 |
result = cell.render(context)
|
|
2199 |
assert PyQuery(result).find('p.label').text() == 'Field H'
|
|
2200 |
assert PyQuery(result).find('span.value a').text() == 'https://www.example.net/'
|
|
2201 |
assert PyQuery(result).find('span.value a').attr['href'] == 'https://www.example.net/'
|
|
2202 |
|
|
2203 |
|
|
2204 |
@mock.patch('combo.apps.wcs.utils.requests.send', side_effect=mocked_requests_send)
|
|
2205 |
def test_card_cell_render_custom_schema_custom_entry(mock_send, context, app):
|
|
2206 |
page = Page.objects.create(title='xxx', template_name='standard')
|
|
2207 |
cell = WcsCardInfosCell.objects.create(
|
|
2208 |
page=page,
|
|
2209 |
placeholder='content',
|
|
2210 |
order=0,
|
|
2211 |
carddef_reference='default:card_model_1',
|
|
2212 |
custom_schema={
|
|
2213 |
'cells': [
|
|
2214 |
{'varname': '@custom@', 'template': '<b>Foo</b> bar baz', 'display_mode': 'title'},
|
|
2215 |
]
|
|
2216 |
},
|
|
2217 |
)
|
|
2218 |
|
|
2219 |
context['card_model_1_id'] = 11
|
|
2220 |
request = RequestFactory().get('/')
|
|
2221 |
cell.modify_global_context(context, request)
|
|
2222 |
cell.repeat_index = 0
|
|
2223 |
context['synchronous'] = True # to get fresh content
|
|
2224 |
|
2103 |
2225 |
result = cell.render(context)
|
2104 |
2226 |
assert '<b>Foo</b>' in result
|
2105 |
2227 |
assert PyQuery(result).find('h3').text() == '<b>Foo</b> bar baz'
|
... | ... | |
2119 |
2241 |
{
|
2120 |
2242 |
'varname': '@custom@',
|
2121 |
2243 |
'template': '{{ card.fields.related|split:" "|join:"," }}',
|
2122 |
|
'display_mode': 'value',
|
|
2244 |
'display_mode': 'text',
|
2123 |
2245 |
},
|
2124 |
2246 |
]
|
2125 |
2247 |
}
|
2126 |
|
-
|