datasource: don't fail if digests are not defined (#55771)
gitea-wip/wcs/pipeline/head Build started...
Details
gitea-wip/wcs/pipeline/head Build started...
Details
This commit is contained in:
parent
d2c6f15f06
commit
ddef30a778
|
@ -421,6 +421,9 @@ def test_get_data_source_custom_view(pub):
|
|||
|
||||
|
||||
def test_data_source_custom_view_digest(pub):
|
||||
if pub.is_using_postgresql():
|
||||
pub.loggederror_class.wipe()
|
||||
|
||||
CardDef.wipe()
|
||||
carddef = CardDef()
|
||||
carddef.name = 'foo'
|
||||
|
@ -517,6 +520,28 @@ def test_data_source_custom_view_digest(pub):
|
|||
assert len(cards) == 1
|
||||
assert cards[0]['text'] == 'Hello Foo Bar'
|
||||
|
||||
# digests are not defined
|
||||
carddef.digest_templates = {}
|
||||
carddef.store()
|
||||
carddata.id_display = None
|
||||
carddata.digests = None
|
||||
carddata.store()
|
||||
carddata2.id_display = None
|
||||
carddata2.digests = None
|
||||
carddata2.store()
|
||||
carddef.digest_templates = {'custom-view:view': '{{ form_var_foo }} Foo Bar'}
|
||||
carddef.store()
|
||||
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo')] == ['', '']
|
||||
assert [i['text'] for i in CardDef.get_data_source_items('carddef:foo:view')] == ['', '']
|
||||
if pub.is_using_postgresql():
|
||||
assert pub.loggederror_class.count() == 2
|
||||
logged_error = pub.loggederror_class.select()[0]
|
||||
assert logged_error.summary == 'Digest (default) not defined'
|
||||
assert logged_error.formdata_id == str(carddata2.id)
|
||||
logged_error = pub.loggederror_class.select()[1]
|
||||
assert logged_error.summary == 'Digest (custom view "view") not defined'
|
||||
assert logged_error.formdata_id == str(carddata2.id)
|
||||
|
||||
|
||||
def test_data_source_query_escape(pub):
|
||||
CardDef.wipe()
|
||||
|
|
|
@ -14,8 +14,12 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from quixote import get_publisher
|
||||
|
||||
from wcs.formdata import FormData
|
||||
|
||||
from .qommon import _
|
||||
|
||||
|
||||
class CardData(FormData):
|
||||
def get_formdef(self):
|
||||
|
@ -33,9 +37,16 @@ class CardData(FormData):
|
|||
formdef = property(get_formdef)
|
||||
|
||||
def get_data_source_structured_item(self, digest_key='default'):
|
||||
if self.digests is None:
|
||||
if digest_key == 'default':
|
||||
summary = _('Digest (default) not defined')
|
||||
else:
|
||||
summary = _('Digest (custom view "%s") not defined') % digest_key.replace('custom-view:', '')
|
||||
get_publisher().record_error(summary, formdata=self)
|
||||
|
||||
item = {
|
||||
'id': self.id,
|
||||
'text': self.digests.get(digest_key),
|
||||
'text': (self.digests or {}).get(digest_key) or '',
|
||||
}
|
||||
for field in self.formdef.get_all_fields():
|
||||
if not field.varname:
|
||||
|
|
Loading…
Reference in New Issue